1. /**
    2. * 桌子接口
    3. */
    4. public interface Desk {
    5. String getType();
    6. }
    1. /**
    2. * 木质桌子
    3. */
    4. public class WoodenDesk implements Desk {
    5. private String type = "木质桌子";
    6. @Override
    7. public String getType() {
    8. return type;
    9. }
    10. }
    1. /**
    2. * 塑料桌子
    3. */
    4. public class PlasticDesk implements Desk {
    5. private String type = "塑料桌子";
    6. @Override
    7. public String getType() {
    8. return type;
    9. }
    10. }
    1. /**
    2. * 椅子接口
    3. */
    4. public interface Chair {
    5. String getType();
    6. }
    1. /**
    2. * 木质椅子
    3. */
    4. public class WoodenChair implements Chair {
    5. private String type = "木质椅子";
    6. @Override
    7. public String getType() {
    8. return type;
    9. }
    10. }
    1. /**
    2. * 塑料椅子
    3. */
    4. public class PlasticChair implements Chair {
    5. private String type = "塑料椅子";
    6. @Override
    7. public String getType() {
    8. return type;
    9. }
    10. }
    1. /**
    2. * 家具工厂
    3. */
    4. public interface FurnitureFactory {
    5. Desk createDesk();
    6. Chair createChair();
    7. }
    1. /**
    2. * 木质家具工厂
    3. */
    4. public class WoodenFurnitureFactory implements FurnitureFactory {
    5. @Override
    6. public Desk createDesk() {
    7. return new WoodenDesk();
    8. }
    9. @Override
    10. public Chair createChair() {
    11. return new WoodenChair();
    12. }
    13. }
    1. /**
    2. * 塑料家具工厂
    3. */
    4. public class PlasticFurnitureFactory implements FurnitureFactory {
    5. @Override
    6. public Desk createDesk() {
    7. return new PlasticDesk();
    8. }
    9. @Override
    10. public Chair createChair() {
    11. return new PlasticChair();
    12. }
    13. }
    1. /**
    2. * 测试类
    3. */
    4. public class Clienter {
    5. public static void main(String[] args) {
    6. FurnitureFactory factory = new PlasticFurnitureFactory();
    7. Desk desk = factory.createDesk();
    8. Chair chair = factory.createChair();
    9. }
    10. }