1.工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个,也就是说工厂方法模式让实例化推迟到子类
2.mybatis中,事务模块和数据源模块都使用了工厂方法模式
3.面对的目标一般都是单类的。
/*** 桌子接口*/public interface Desk {String getType();}
/*** 木质桌子*/public class WoodenDesk implements Desk {private String type = "木质桌子";@Overridepublic String getType() {return type;}}
/*** 塑料桌子*/public class PlasticDesk implements Desk {private String type = "塑料桌子";@Overridepublic String getType() {return type;}}
/*** 工厂方法*/public interface DeskFactory {Desk createDesk();}
/*** 木质桌子工厂*/public class WoodenDeskFactory implements DeskFactory {@Overridepublic Desk createDesk() {return new WoodenDesk();}}
/*** 塑料桌子工厂*/public class PlasticDeskFactory implements DeskFactory {@Overridepublic Desk createDesk() {return new PlasticDesk();}}
/*** 测试类*/public class Clienter {public static void main(String[] args) {DeskFactory deskFactory = new WoodenDeskFactory();Desk desk = deskFactory.createDesk();}}
