Factory Method
- Product 定义了由factory method创建对象的统一接口
- ConcreteProduct是具体的类
- Creator为一般抽象类,声明若干factory method方法
- ConcreteCreator重载factory method创建某个ConcreteProduct
下面是JavaMail的结构
重用性说明
扩展性说明
如果有新的邮件协议为NewP,扩展Store为NewPStore, 扩展新类NewPFolder以及NewPMessage
带参数的模式
Parameterized Factory
对于Parameterized factory method模式,其factory method有一参数,用于指明需创建的对象的类型,这样一个类的factory method可以创建多种具体类型(ConcreteProduct)的对象,与Factory Method相同的是它所创建的对象都具有同样的接口Product
Factory Method 模式在 Javamail 中的应用