标签:封装 Builder 建造 模式 --- 抽象 产品 具体 设计模式
建造者模式(链式编程)
1.定义
指将一个复杂对象的构造与它的表示分离,使同样的构建过程 可以创建不同的表示
2.组成
- 产品角色(Product):它是包含多个组成部件的复杂对象,由具体建造者来创建其各个组成部件
- 抽象建造者(Builder):引入抽象建造者的目的,是为了将建造的具体过程交与它的子类来实现。这样更容易扩展。一般至少会有两个抽象方法,一个用来建造产品,一个是用来返回产品。
- 具体建造者(Concrete Builder):该角色实现抽象建造者中定义的所有方法,并且返回一个组件好的产品实例。
- 指挥者(Director):负责调用适当的建造者来组建产品,该类一般不与产品类发生依赖关系,与该类直接交互的是抽象建造者类。一般来说,指挥类被用来封装程序中易变的部分。
3.结构图
4.优缺点
优点:
①各具体的建造者相互独立,有利于系统的扩展。
②客户端不必知道产品内部组成的细节,便于控制细节风险。
③封装性很好。使用建造者模式可以有效的封装变化,在使用建造者模式的场景中,一般产品类和具体建造者类是比较稳定的,因此,将主要的业务逻辑封装在导演类中对整体而言可以取得比较好的稳定性。
④方便书写,相当于一个工具类Util,根据个人编写习惯
缺点:
①产品的组成部分必须相同,这限制了其使用范围。
②如果产品的内部变化复杂,该模式会增加很多的建造者类。
建造者模式 工厂模式的关注点不同,建造者模式注重零部件的组装过程,而工厂方法模式更注重零部件的创建过程,但两者可以结合使用。
③不是具体功能,没有提供具体功能
5.应用场景
- 复杂的内部结构
- 内部属性相互依赖
- 与不可变对象配合使用
标签:封装,Builder,建造,模式,---,抽象,产品,具体,设计模式 来源: https://blog.csdn.net/weixin_62862983/article/details/122302509
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。