建造者模式 发表于 2018-04-02 | 更新于: 2018-04-02 | 分类于 设计模式 | | 阅读次数: | 字数统计: 536 | 阅读时长 ≈ 3 建造者模式(Builder Pattern)属于创建型模式,它使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104/* * Copyright,ShanNong Inc,2018 and onwards * * Author:fanghua fan */package com.fanghua.designpattrn.build;import java.util.ArrayList;import java.util.List;public class BuliderPattern { public static void main(String[] args) { //找到该店的老板和装机人员 Boss boss = new Boss(); Builder builder = new WorkerBuilder(); //沟通需求后,老板叫装机人员去装电脑 boss.command(builder); //装完后,组装人员搬来组装好的电脑 Computer computer = builder.GetComputer(); //组装人员展示电脑给小成看 computer.Show(); }}/** * 组装电脑操作 */abstract class Builder { //声明为抽象方法,安装CPU public abstract void BuildCPU(); //声明为抽象方法,安装主板 public abstract void BuildMainboard(); //声明为抽象方法,安装显卡 public abstract void BuildHD(); //返回产品的方法:获得组装好的电脑 public abstract Computer GetComputer();}/** * 老板发布组装电脑任务 */class Boss { // 指挥装机人员组装电脑 public void command(Builder builder) { builder.BuildCPU(); builder.BuildMainboard(); builder.BuildHD(); }}class WorkerBuilder extends Builder { //创建产品实例 Computer computer = new Computer(); //组装产品 @Override public void BuildCPU() { computer.Add("组装CPU"); } @Override public void BuildMainboard() { computer.Add("组装主板"); } @Override public void BuildHD() { computer.Add("组装显卡"); } //返回组装成功的电脑 @Override public Computer GetComputer() { return computer; }}/** * 电脑概述 */class Computer { //电脑组件的集合 private List<String> parts = new ArrayList<String>(); //用于将组件组装到电脑里 public void Add(String part) { parts.add(part); } public void Show() { for (int i = 0; i < parts.size(); i++) { System.out.println("部件" + parts.get(i) + "组装完成"); } System.out.println("电脑组装完成,启动看看"); }} https://blog.csdn.net/carson_ho/article/details/54910597 (全文完)4/2/2018 11:07:24 PM 本文作者: 南风 本文链接: http://www.jackfan.top/posts/29711/ 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!