1、问题场景
场景:组装一台电脑,装机人员不管你是什么牌子型号的模块,都能快速装成一台电脑。对于客户来说,装机的细节基本不考虑,只关心最终的成品。
问题:当我们要创建很复杂的对象(多模块组合而成)的时候,怎么样实现对象创建过程和对象的表现形式分离开来,实现低耦合,高内聚。
2、解决办法
建造模式:将一个复杂独立的构造与它的表现形式分离,使得同样的构造过程可以创建不同的表现形式。换句话说就像组装电脑一样,只要兼容的设备都可以装上去。首先客户创建指导者对象实例(Director)和一个建造者对象实例(Builder);然后指导者根据建造者对象具体实例建造各个不同的单一模块;最后客户从指导者那里得到最终的产品。
UML图:
优缺点:使产品内部构造独立化,实现了由“外部”指导建造对应的部件,符合“开闭原则”;建造者模式使用户不必知道产品的细节,只关心由建造者协调创建对应的产品,化繁为简,对复杂产品的建造过程精确控制。结构复杂过后,维护成本增加,同时可能会带来结构上的臃肿。
备注:建造模式跟工厂模式有点类似,区别在于-----建造模式着重于组件的装配成一个成品提供给客户,抽象工厂着重产品系列相关的多个产品对象。前者由外部指导特性为主导,后者以内部产品特性为主导。
---------------------------------------------------------------------------
Name:一个奔跑中的loser
E-mail:chenfeiyoucan@163.com
_________________________________________