技术开发 频道

基于反射和属性的Builder模式实现


经典Builder模式
 

    创建型模式中,Builder模式一般用来处理“复杂”对象创建的,与Factory Method、Abstract Factory不同,它不仅要完成new()的工作,由于“复杂”对象还很有可能包括很多部件,因此Builder还需要进行每个部分的组装工作。《设计模式》中对
该模式表述为:

    Separate the construction of a complex object from its representation so that the same construction process can create different representations..
    ——《Design Patterns : Elements of Reusable Object-Oriented Software》

很大程度上这个意图太过精炼以至于学习者很不好把握它的要求,实质上创建者模式解决的问题是产品局部加工过程变化较大,但组装过程相对固定这类问题的处理。例如:
 一个最直接的例子就是“装”PC机,虽然声卡、显卡、内存、硬盘、机箱、键盘鼠标、显示器都有很多的不同,无论是图形工作站还是一般娱乐用的笔记本,无论是品牌机还是自己“攒”的机器,每个部分的制造和生产过程都有很多不同,但组装一台计算机的过程相对固定;
 一辆汽车也是,虽然不同品牌不同档次的汽车在轮胎、发动机、车身的制作工艺上又很大区别,但组装的过程相对而言也非常稳定;

    上面这些例子就是创建者模式一个典型的应用情景,经典的创建者模式静态结构如下:


0
相关文章