设计模式之Factory Method

Factory Method属于创建型模式,要灵活运用它,首先要理解其各部分的概念:

  1. Product 定义了由factory method所创建对象的统一接口。
  2. ConcreteProduct 具体的类,实现Product接口。
  3. Creator 一般为抽象类,声明若干factory method(方法),由它创建类型为Product的对象。正因为它能"生产"对象,所以称为factory method。Creator也可能拥有一个方法创建某个缺省的具体对象。
  4. ConcreteCreator 重载factory method以创建某个 ConcreteProduct 的具体实例。

也就是说Creator依赖于ConcreteCreator创建Product型的ConcreteProduct对象。 Factory method使应用程序代码只需处理Product接口,而与具体的类(ConcreteProduct)无关,增强了代码可重用性,因为它独立于用户定义的具体的类。

Pattern 要点:

  • Factory Method一个很大的特点是将将实例的创建与适用分开来操作, 好比制造汽车, 将制造过程留在工厂里,最后出来的只是一辆成型的汽车。 2009-12-04
  • 这里很多地方用到了面向接口编程的思想,Sample mysample=new MySample();想这种就是将Sample定义成一个abstract类或接口,具体实现有MySample来实现,值得注意的是,这里MySample只是实现了Sample中定义的方法,并没有添加新的内容。2009-12-04

 

 

Factory Method适用的情况:

  1. 对象构造函数比较多,比较复杂的时候。比如Sample a = new Sample(xxxxx),如果这里面的参数比较复杂,说明这个类设计的也比较复杂,相当于把饺子都放在一个锅里了,这个时候如果考虑用factory method可以降低复杂度,后期如果需要alter或update就会比较容易。2009-12-04

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值