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

黄村网站建设手机网址在哪

黄村网站建设,手机网址在哪,网站建设与管理插图,wordpress 中文插件大全设计模式--建造者模式 builder#xff09;建造者模式简介建造者模式--小例子#xff08;电脑购买#xff09;1.产品类2.抽象构建者3.实体构建类4.指导者类5.客户端测试类小结建造者模式简介 建造者模式有四个角色,概念划分如下#xff1a; Product #xff1a; 产品类建造者模式简介建造者模式--小例子电脑购买1.产品类2.抽象构建者3.实体构建类4.指导者类5.客户端测试类小结建造者模式简介 建造者模式有四个角色,概念划分如下 Product 产品类最终要生成的对象例如一台电脑。Builder 构建者的抽象基类或则抽象接口。定义了Product产品的生产流程的抽象步骤比如一台电脑可以在出厂的时候就将所有外设配件搭载齐全也可以只是原装的一台电脑外设需要自己从别的地方购买。ConcreteBuilder Builder的实现类。Direcotr : 决定如何构建最终产品的算法逻辑多个方法Construct(Builder builder){//方法体}例如你是要买一台外设齐全的电脑还是一台没有任何外设的原装电脑最后通过Builder.getProduct()获得最终的产品。 类图如下(直接将韩老师的图拿过来了) 建造者模式–小例子电脑购买 购买一台电脑可以买完整的包括所有外设的电脑也可以买只有电脑本身无任何外设配件的电脑且电脑品牌很多联想华硕可以自行选择电脑的cpu和主板若买外设配件时则根据购买电脑品牌来添加对应品牌外设。 1.产品类 电脑CPU和主板都为必选其余外设可不选。 package com.robin.builder;// 一台完整的电脑产品 public class Computer {private String cpu; // cpu 必选private String mouse; // 鼠标 可选private String monitor; // 屏幕显示器 可选private String keyBoard; // 键盘 可选private String mainBoard; // 主板 必选// cpu和主板为必选其余配件可以自行选择public Computer(String cpu, String mainBoard) {this.cpu cpu;this.mainBoard mainBoard;}// 对可选的配件提供setter方法public void setMouse(String mouse) {this.mouse mouse;}public void setMonitor(String monitor) {this.monitor monitor;}public void setKeyBoard(String keyBoard) {this.keyBoard keyBoard;}Overridepublic String toString() {return Computer{ cpu cpu \ , mouse mouse \ , monitor monitor \ , keyBoard keyBoard \ , mainBoard mainBoard \ };} } 2.抽象构建者 抽象构建者 package com.robin.builder;// 抽象构建者 public abstract class ComputerBuilder {public abstract Computer getComputer();public abstract void setMouse();public abstract void setMonitor();public abstract void setKeyBoard();} 3.实体构建类 两个不同品牌的电脑实体构建类 联想 package com.robin.builder;// 品牌电脑实体构建者类 public class LenovoComputerBuilder extends ComputerBuilder{private Computer computer;public LenovoComputerBuilder(String cpu, String mainBoard) {computer new Computer(cpu, mainBoard);}Overridepublic Computer getComputer() {return computer;}Overridepublic void setMouse() {computer.setMouse([lenovo]鼠标);}Overridepublic void setMonitor() {computer.setMonitor([lenovo]240Hz高刷显示器);}Overridepublic void setKeyBoard() {computer.setKeyBoard([lenovo]机械键盘);} } 华硕 package com.robin.builder;public class ASUSComputerBuilder extends ComputerBuilder{private Computer computer;public ASUSComputerBuilder(String cpu,String mainBoard) {computer new Computer(cpu, mainBoard);}Overridepublic Computer getComputer() {return computer;}Overridepublic void setMouse() {computer.setMouse([华硕]鼠标);}Overridepublic void setMonitor() {computer.setMonitor([华硕]显示屏);}Overridepublic void setKeyBoard() {computer.setKeyBoard([华硕]机械键盘);} } 4.指导者类 通过两个方法来确定创建购买何种类型包含何种配件。 package com.robin.builder;public class ComputerDirector {// 包含所有完整配件的电脑public void buyCompleteComputer(ComputerBuilder computerBuilder){computerBuilder.setMouse();computerBuilder.setKeyBoard();computerBuilder.setMonitor();}// 无配件的电脑public void buyNoAcesComputer(ComputerBuilder computerBuilder){} } 5.客户端测试类 package com.robin.builder;public class Main {public static void main(String[] args) {// 1.创建指挥者ComputerDirector computerDirector new ComputerDirector();// 2.创建实体构造者LenovoComputerBuilder lenovoComputerBuilder new LenovoComputerBuilder(i9, QDI);// 3.指挥者调用构造者去设定电脑配件computerDirector.buyCompleteComputer(lenovoComputerBuilder);// 4.获取电脑产品Computer computer1 lenovoComputerBuilder.getComputer();// 5.输出System.out.println(computer1);// 购买一台华硕电脑其cpu为i7,主板为华硕其余配件不进行选择ASUSComputerBuilder asusComputerBuilder new ASUSComputerBuilder(i7, 华硕);computerDirector.buyNoAcesComputer(asusComputerBuilder);Computer computer2 asusComputerBuilder.getComputer();System.out.println(computer2);} } 小结 建造者模式是设计模式中创建型的一种将一个复杂对象的构建与它的表示分离使得同样的构建过程可以创建不同的表示。 建造者模式实用范围: 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。当构造过程必须允许被构造的对象有不同表示时 tip: 当一个类的构造函数参数个数超过4个而且这些参数有些是可选的参数考虑使用构造者模式。
http://www.dnsts.com.cn/news/42616.html

相关文章:

  • 浪网站制作ai画作拍卖在上海拍出110万高价
  • 医院网站加快建设方案如何在网站后台找到死链接
  • 临夏市做网站电话山东城乡和住房建设厅网站
  • 成化区建设局网站怎么制作wap网站
  • 母婴网站设计分析wordpress 侧边栏
  • 上海服装网站建设做名片哪个网站最好
  • 您身边的网站建设专家网站开发项目概述
  • 自助商城网站建设微信app下载安装教程
  • 网站图标怎么设置seo外链招聘
  • 有一个域名做网站淄博做网站公司
  • 网站设计开发网站自己做的手工放在哪个网站卖
  • 兰州网站排名优化服务网站建设费包括
  • 正常成都建设网站aspx网站开发
  • 多国语言外贸网站模板wordpress 登录后页面空白
  • 黄浦手机网站建设网站如何做双语言
  • 四川建设网官南昌网站seo费用
  • 建立门户网站的费用女生读网络营销与电商直播
  • 单页网站怎么做seo互联网公司排名最新
  • 成都网站建设电话网站建设开发综合实训报告
  • 我们公司在做网站推广网站简介 title
  • 邯郸企业做网站方案宁波自己建网站
  • 无锡网站建设外包优势中山本地网站建设
  • WordPress网站文章导出导入做电商那个平台最好
  • 北京网站建设z亿玛酷1专注去除wordpress评论电子邮件
  • php网站开发工具有哪些长沙关键词优化方法
  • 国外优秀vi设计网站国际重大新闻
  • 网站如何做流量赚钱吗wordpress显示作者的角色
  • 网站申请微信支付接口深圳地铁网站开发
  • 宁波建设网站哪家好怎么给网站做谷歌seo
  • 数据库网站开发苏ICP备网站建设中企动力无锡