type
status
date
slug
summary
tags
category
icon
password
AI summary
一、定义
建造者模式指的是
一个复杂
对象,它是由多个简单
的对象组合,然后一步一步建构而成的二、示例:
模拟场景:
很多装修公司都会给出⾃家的套餐服务,⼀般有;欧式豪华、轻奢⽥园、现代简约等等,⽽这些套餐的后⾯是不同的商品的组合。例如;⼀级&⼆级吊顶、多乐⼠涂料、圣象地板、⻢可波罗地砖等等,按照不同的套餐的价格选取不同的品牌组合,最终再按照装修⾯积给出⼀个整体的报价。
这⾥我们就模拟装修公司想推出⼀些套餐装修服务,按照不同的价格设定品牌选择组合,以达到使⽤建造者模式的过程。
传统硬编码方式(都在一个类里面实现,多重if else嵌套使用)
装修风格类:
DecorationPackageController
测试:
ApiTest
建造者模式
任何的装修风格都是离不开基础的涂料、平层、瓷砖、吊顶。
抽象装修菜单接口:
IMenu
规则实现:
DecoratePackageMenu
每一种装修风格对应的是一种装修方法,加入新的风格,只需要扩展新的方法:
Builder
总结:
通过上⾯对建造者模式的使⽤,已经可以摸索出⼀点⼼得。那就是什么时候会选择这样的设计模
式,当:
⼀些基本物料不会变
,⽽其组合经常变化
的时候 ,就可以选择这样的设计模式来构建代码。此设计模式满⾜了
单⼀职责
原则以及可复⽤的技术、建造者独⽴
、易扩展
、便于控制细节⻛险。但
同时当出现特别多的物料以及很多的组合后,类的不断扩展也会造成难以维护的问题。但这种设计
结构模型可以把᯿复的内容抽象到数据库中,按照需要配置。这样就可以减少代码中⼤量的复。- 作者:IT小舟
- 链接:https://codegym.top/article/JAVA%E3%80%90%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F%E3%80%91%E5%BB%BA%E9%80%A0%E8%80%85%E6%A8%A1%E5%BC%8F
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。