1、简单工厂模式。
用一个单独的类(工厂)来封装实例的创建过程。
2、策略模式。
定义算法家族,将他们封装起来,使得算法的变化不影响客户的使用。也就是说,策略模式封装了变化。在实践中,它几乎可以封装几乎任何类型的规则,只要在分析中发现要在不同时间应用不同的业务规则,就可以考虑应用这种模式来处理。
在基本的策略模式中,选择的具体实现还是要由客户端实现,并转给策略对象context。但是通过将策略模式与简单工厂模式组合,选择的具体职责也可由context来完成,这样就可以最大化减轻客户端的职责了。(据说还可以利用反射机制为context减负,以最小化需求变更引起的代码更改)
原文地址:http://www.cnblogs.com/wangzhigang/p/3719150.html