微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

BUILDER模式的实现方法是什么

本篇内容主要讲解“BUILDER模式的实现方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“BUILDER模式的实现方法是什么”吧!

效果

它将构造代码和表示代码分开

Builder模式将构建对象的代码和表现(表达)对象的代码隔离开。这里的构建偏向于抽象的指示部分,表现(表达)则偏向实际的输出。例如我们说装一扇门,对于建筑模型来讲,可能就是在模型上粘一个小木板;对于现场工人来讲,可能真的就是安装一个防盗门。这里装一扇门就是抽象的指示,而粘小木板或者安装防盗门则是具象表现(表达)的部分。

Builder模式通过封装一个复杂对象的创建和表示方式提高了对象的模块性。客户不需要知道定义产品内部结构的类的所有信息;这些类是不出现在Builder接口中的。

构建任何一个对象,一般来讲都有一个从抽象构建到具象构建(实现、表达)的过程。将这两个过程分离之后,使用接口的一侧就不需要了解接口实现的方式和内容,所以说这个对象更加模块化了。

当然只有复杂到一定程度之后,这种分离才会产生实际的意义。要不要分离,需要设计者根据自己的看法进行判断。

每个ConcreteBuilder包含了创建和装配一个特定产品的所有代码。这些代码只需要写一次;然后不同的Director可以复用它以在相同部件集合的基础上构作不同的Product。在前面的RTF例子中,我们可以为RTF格式以外的格式定义一个阅读器,比如一个SGMLReader,并使用相同的TextConverter生成SGML文档的ASCIIText、TeXText和TextWidget译本。

具象Builder类承担的是实际构建的部分,它应该包含生成特定产品的代码。对于每类(不是每个)产品,这部分代码只需要写一次;抽象构建的逻辑可以由不同的Director或者相同Director的不同逻辑来决定。

首先来看《设计模式》中的实例的类图:

BUILDER模式的实现方法是什么

TextConverter中分别定义了转换字符,字体和段落的接口。

DocumentBuilder定义了文档开始,结束和生成Title1,Title2,Text的接口。

这种不同,其实这就是一个实际开发中如何定义Builder接口的问题。关于这个问题,作者的观点是:

  1. 接口的定义应该按照Director世界中的观点来进行。

  2. 接口的定义还应该考虑具象Builder的可实现性。

到此,相信大家对“BUILDER模式的实现方法是什么”有了更深的了解,不妨来实际操作一番吧!这里是编程之家网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐