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