本篇内容主要讲解“BUILDER模式的实现方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“BUILDER模式的实现方法是什么”吧!
效果
它将构造代码和表示代码分开
Builder模式将构建对象的代码和表现(表达)对象的代码隔离开。这里的构建偏向于抽象的指示部分,表现(表达)则偏向实际的输出。例如我们说装一扇门,对于建筑模型来讲,可能就是在模型上粘一个小木板;对于现场工人来讲,可能真的就是安装一个防盗门。这里装一扇门就是抽象的指示,而粘小木板或者安装防盗门则是具象表现(表达)的部分。
Builder模式通过封装一个复杂对象的创建和表示方式提高了对象的模块性。客户不需要知道定义产品内部结构的类的所有信息;这些类是不出现在Builder接口中的。
构建任何一个对象,一般来讲都有一个从抽象构建到具象构建(实现、表达)的过程。将这两个过程分离之后,使用接口的一侧就不需要了解接口实现的方式和内容,所以说这个对象更加模块化了。
当然只有复杂到一定程度之后,这种分离才会产生实际的意义。要不要分离,需要设计者根据自己的看法进行判断。
每个ConcreteBuilder包含了创建和装配一个特定产品的所有代码。这些代码只需要写一次;然后不同的Director可以复用它以在相同部件集合的基础上构作不同的Product。在前面的RTF例子中,我们可以为RTF格式以外的格式定义一个阅读器,比如一个SGMLReader,并使用相同的TextConverter生成SGML文档的ASCIIText、TeXText和TextWidget译本。
具象Builder类承担的是实际构建的部分,它应该包含生成特定产品的代码。对于每类(不是每个)产品,这部分代码只需要写一次;抽象构建的逻辑可以由不同的Director或者相同Director的不同逻辑来决定。
首先来看《设计模式》中的实例的类图:
TextConverter中分别定义了转换字符,字体和段落的接口。
DocumentBuilder定义了文档开始,结束和生成Title1,Title2,Text的接口。
这种不同,其实这就是一个实际开发中如何定义Builder接口的问题。关于这个问题,作者的观点是:
接口的定义应该按照Director世界中的观点来进行。
接口的定义还应该考虑具象Builder的可实现性。
到此,相信大家对“BUILDER模式的实现方法是什么”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!