工厂方法(Factory Method)
意图:定义一个用于创建对象的接口,让子类决定实例化哪一个类,Factory Method使一个类的实例化延迟到其子类。
别名:虚构造器(Virtual Constructor)
结构:
Product类或接口,定义工厂方法所创建的对象的接口
ConcreteProduct类,实现Product接口
Creator类,声明工厂方法factoryMethod,该方法返回一个Product类型的对象。Creator也可以定义一个工厂方法的缺省实现,返回一个缺省的ConcreteProduct对象;可以调用工厂方法创建一个Product对象。
ConcreteCreator类,重定义工厂方法以放回一个ConcreteProduct实例。
Creator依赖它的子类来定义工厂方法,要注意不要在Creator的构造器中调用工厂方法,此时在ConcreteCreator中该方法还不可用。
一般实现:
Text Document openText Document revertText Document saveText Document close