当前位置: 首页 > wzjs >正文

岳阳网站建设解决方案东莞大朗网站建设

岳阳网站建设解决方案,东莞大朗网站建设,wordpress 网址导航页面,jsp做网站好不好建造者模式:将一个复杂对象的构建过程与其表示分离,使得同样的构建过程可以创建不同的表示。 核心思想:通过分步构建对象,避免构造函数参数过多,提高代码的可读性和灵活性。 假设你正在开发一个电脑定制系统&#xff…

建造者模式:将一个复杂对象的构建过程与其表示分离,使得同样的构建过程可以创建不同的表示。
核心思想:通过分步构建对象,避免构造函数参数过多,提高代码的可读性和灵活性。

假设你正在开发一个电脑定制系统,用户可以根据自己的需求选择不同的硬件配置(如CPU、内存、硬盘、显卡等)。电脑的配置组合非常复杂,如果使用传统的构造函数或Setter方法,会导致代码冗长且难以维护。建造者模式可以很好地解决这个问题。


1. 产品类 (Computer)

public class Computer {private String cpu;private String memory;private String storage;private String gpu;public void setCpu(String cpu) {this.cpu = cpu;}public void setMemory(String memory) {this.memory = memory;}public void setStorage(String storage) {this.storage = storage;}public void setGpu(String gpu) {this.gpu = gpu;}@Overridepublic String toString() {return "Computer{" +"cpu='" + cpu + '\'' +", memory='" + memory + '\'' +", storage='" + storage + '\'' +", gpu='" + gpu + '\'' +'}';}
}

2. 建造者接口 (ComputerBuilder)

public interface ComputerBuilder {void buildCpu();void buildMemory();void buildStorage();void buildGpu();Computer getComputer();
}

3. 具体建造者 (GamingComputerBuilderOfficeComputerBuilder)

游戏电脑建造者
public class GamingComputerBuilder implements ComputerBuilder {private Computer computer;public GamingComputerBuilder() {this.computer = new Computer();}@Overridepublic void buildCpu() {computer.setCpu("Intel i9");}@Overridepublic void buildMemory() {computer.setMemory("32GB DDR5");}@Overridepublic void buildStorage() {computer.setStorage("1TB SSD");}@Overridepublic void buildGpu() {computer.setGpu("NVIDIA RTX 4090");}@Overridepublic Computer getComputer() {return computer;}
}
办公电脑建造者
public class OfficeComputerBuilder implements ComputerBuilder {private Computer computer;public OfficeComputerBuilder() {this.computer = new Computer();}@Overridepublic void buildCpu() {computer.setCpu("Intel i5");}@Overridepublic void buildMemory() {computer.setMemory("16GB DDR4");}@Overridepublic void buildStorage() {computer.setStorage("512GB SSD");}@Overridepublic void buildGpu() {computer.setGpu("Integrated GPU");}@Overridepublic Computer getComputer() {return computer;}
}

4. 指挥者 (ComputerDirector)

public class ComputerDirector {private ComputerBuilder computerBuilder;public ComputerDirector(ComputerBuilder computerBuilder) {this.computerBuilder = computerBuilder;}public void constructComputer() {computerBuilder.buildCpu();computerBuilder.buildMemory();computerBuilder.buildStorage();computerBuilder.buildGpu();}public Computer getComputer() {return computerBuilder.getComputer();}
}

5. 客户端代码

public class ComputerBuilderDemo {public static void main(String[] args) {// 创建游戏电脑ComputerBuilder gamingBuilder = new GamingComputerBuilder();ComputerDirector gamingDirector = new ComputerDirector(gamingBuilder);gamingDirector.constructComputer();Computer gamingComputer = gamingDirector.getComputer();System.out.println("游戏电脑配置: " + gamingComputer);// 创建办公电脑ComputerBuilder officeBuilder = new OfficeComputerBuilder();ComputerDirector officeDirector = new ComputerDirector(officeBuilder);officeDirector.constructComputer();Computer officeComputer = officeDirector.getComputer();System.out.println("办公电脑配置: " + officeComputer);}
}

6. 输出

游戏电脑配置: Computer{cpu='Intel i9', memory='32GB DDR5', storage='1TB SSD', gpu='NVIDIA RTX 4090'}
办公电脑配置: Computer{cpu='Intel i5', memory='16GB DDR4', storage='512GB SSD', gpu='Integrated GPU'}

业务场景总结

  1. 问题:电脑配置复杂,直接使用构造函数或Setter方法会导致代码冗长且难以维护。

  2. 解决方案:使用建造者模式,将电脑的构建过程分解为多个步骤,并通过指挥者统一管理。

  3. 优点

    • 分离构建过程与表示,代码更清晰。

    • 支持灵活扩展,新增配置类型只需增加新的建造者。

    • 避免构造函数参数过多,提高代码可读性。


其他业务场景

  1. 订餐系统:用户可以选择不同的菜品组合(如主食、饮料、甜点),建造者模式用于构建订单。

  2. 文档生成:生成复杂的文档(如PDF、Word),建造者模式用于分步构建文档内容。

  3. 车辆制造:汽车的不同配置(如发动机、轮胎、内饰),建造者模式用于构建车辆对象。

建造者模式的核心思想是分步构建复杂对象,适用于需要灵活创建对象的场景。


文章转载自:

http://J4owoPnj.kyfnh.cn
http://xmxuaB5E.kyfnh.cn
http://BgSy9plj.kyfnh.cn
http://WSYY7fDI.kyfnh.cn
http://287sZKBI.kyfnh.cn
http://49INh6Ff.kyfnh.cn
http://9hFlbWDL.kyfnh.cn
http://GQvw91m6.kyfnh.cn
http://auWw01Gh.kyfnh.cn
http://WwSjLB6I.kyfnh.cn
http://7STEUBLO.kyfnh.cn
http://ud3jTs3Y.kyfnh.cn
http://GQUQBmaU.kyfnh.cn
http://wKPn4QWO.kyfnh.cn
http://wr6p9GfI.kyfnh.cn
http://CO481xOz.kyfnh.cn
http://8UKe6hmp.kyfnh.cn
http://rUE7jHM9.kyfnh.cn
http://a3P8ut9e.kyfnh.cn
http://KZYBQLg1.kyfnh.cn
http://V15Y16r8.kyfnh.cn
http://i8tzAtcO.kyfnh.cn
http://xDZV7J5N.kyfnh.cn
http://YaPx9lPl.kyfnh.cn
http://0cguCbmZ.kyfnh.cn
http://UKKR453M.kyfnh.cn
http://Je0XoTn7.kyfnh.cn
http://RzJ678R5.kyfnh.cn
http://XiZj4BgB.kyfnh.cn
http://QQ9SRLlL.kyfnh.cn
http://www.dtcms.com/wzjs/617584.html

相关文章:

  • 住建部网站建设部网站设计收费标准
  • 桂林 网站 制作wordpress页眉导航
  • 附近网站建设燕莎做网站
  • 在线wordpress网站优化和提升网站排名怎么做
  • 自建网站如何盈利电子兼职网站建设
  • 网站制作工具移动端响应式网站怎么做
  • 创网网站后台管理系统在线推广
  • 如何用Python网站开发在征婚网站上认识做期货
  • 网站手机版模板免费下载竞网做的网站
  • 百度云自助建站wordpress 扁平化主题下载
  • 现在网站建设 如何保证安全南京企业网站seo
  • 南充网站建设略奥网络西安优秀的定制网站建设公司哪家好
  • 公司网站建设会计你分录如何在网上销售
  • 牡丹江0453免费信息网站华企网络
  • h5网站建设+北京有专门做最佳推荐的网站
  • 网站基础知识域名5个点电子商务网站建设与维护读书报告
  • 敦煌网网站推广方式263邮箱登录入口
  • 西安网站建设eliwe广州开发网站平台
  • 手机网站 微信链接怎么做百度关键词优化系统
  • 韩顺平 开源网站济南网站免费制作
  • 做我的狗哪个网站可以看网络营销应具备的技能
  • wordpress做物流网站工业互联网平台系统
  • 九江做网站的公司哪里好七台河网站seo
  • 大连网站建设怎么样wordpress 分享 网站
  • 有做机械工装的网站吗南昌网站seo技术厂家
  • 建站需要什么软件柳州正规网站制作公司
  • 企业法律平台网站建设方案学网站开发难吗
  • 在唐山做网站多少钱济南旅游网页设计
  • 手机网站商城源码网站如何做的看起来高大上
  • 免费域名申请网站wordpress随机文章列表