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

温州制作网站做西点网站

温州制作网站,做西点网站,你愿不愿意做我女朋友网站,网店怎么推广和宣传一、什么是建造者模式? 将复杂对象的构建与表示进行分离,使得统一的构建过程,可以创建出不同的对象表现模式 就是将复杂对象里面的成员变量,设置不同的值,使得生成出来的对象拥有不同的属性值; 二、特点…

一、什么是建造者模式?

将复杂对象的构建与表示进行分离,使得统一的构建过程,可以创建出不同的对象表现模式

就是将复杂对象里面的成员变量,设置不同的值,使得生成出来的对象拥有不同的属性值;

二、特点

要解决的问题:复杂对象使用不同的构建过程,产生拥有不同对象属性的对象,调用者只需要设定不同的属性值,不需要了解属性值之间是怎么构建出来对象的;

抽象建造者:抽象创建者接口

实际建造者:抽象创建者的不同实现

产品:复杂产品

指挥者:用来与调用者交互,实现通过抽象创建者生产出产品的流程

三、角色和实现

实现方式一:

  • 抽象建造者
public interface CarBuilderInterface {Object builderWheel();Object builderFrame();Object builderCoreComponent();}
  • 具体建造者
public class CarBuilderInterfaceImpl implements CarBuilderInterface {@Overridepublic Object builderWheel() {System.out.println("生产了一个轮子");return "返回轮子";}@Overridepublic Object builderFrame() {System.out.println("生产了一个车架");return "返回车架";}@Overridepublic Object builderCoreComponent() {System.out.println("生产了核心组件");return "返回核心组件";}
}
  • 具体的产品
public class CarProduct {private String wheel;private String frame;private String coreComponent;public String getWheel() {return wheel;}public void setWheel(String wheel) {this.wheel = wheel;}public String getFrame() {return frame;}public void setFrame(String frame) {this.frame = frame;}public String getCoreComponent() {return coreComponent;}public void setCoreComponent(String coreComponent) {this.coreComponent = coreComponent;}
}
  • 指挥者Director:实例化建造者,通过建造者组织具体的产品
public class CarBuilderDirector {private CarBuilderInterface carBuilderInterface;public CarBuilderDirector(CarBuilderInterface carBuilderInterface) {this.carBuilderInterface = carBuilderInterface;}public CarProduct builderCarProduct() {CarProduct carProduct = new CarProduct();carProduct.setWheel(carBuilderInterface.builderWheel().toString());carProduct.setFrame(carBuilderInterface.builderFrame().toString());carProduct.setCoreComponent(carBuilderInterface.builderCoreComponent().toString());return carProduct;}
}
  • 当需要使用建造者模式进行对象构建时:
public class Client {public static void main(String[] args) {CarBuilderInterface carBuilderInterface = new CarBuilderInterfaceImpl();CarBuilderDirector carBuilderDirector = new CarBuilderDirector(carBuilderInterface);CarProduct carProduct = carBuilderDirector.builderCarProduct();System.out.println("生成了一个车:" + carProduct.getWheel() + "," + carProduct.getFrame() + "," + carProduct.getCoreComponent());}
}

实现方式二:使用静态内部类的方式实现


/*** 通过内部类的形式实现建造者模式,并且可以实现链式调用*/
public class CarBuilderExample {private String wheel;private String frame;private String coreComponent;private CarBuilderExample(String wheel, String frame, String coreComponent) {this.wheel = wheel;this.frame = frame;this.coreComponent = coreComponent;}public static class CarBuilderExampleBuilder {private String wheel;private String frame;private String coreComponent;public static CarBuilderExampleBuilder builder() {return new CarBuilderExampleBuilder();}public CarBuilderExampleBuilder wheel(String wheel) {this.wheel = wheel;return this;}public CarBuilderExampleBuilder frame(String frame) {this.frame = frame;return this;}public CarBuilderExampleBuilder coreComponent(String coreComponent) {this.coreComponent = coreComponent;return this;}public CarBuilderExample builderExample() {return new CarBuilderExample(wheel, frame, coreComponent);}}public static void main(String[] args) {CarBuilderExampleBuilder builder = CarBuilderExampleBuilder.builder();CarBuilderExample carBuilderExample = builder.wheel("轮子").frame("车架+").coreComponent("核心部件+").builderExample();System.out.println(carBuilderExample.coreComponent + carBuilderExample.frame + carBuilderExample.wheel);}}
lombok包里面的@Builder也是通过这种模式实现的

四、与工厂方法和抽象工厂之间的区别

工厂是指创建一个类型的多种实现

抽象工厂是指创建一系列类型的多种实现

http://www.yingshimen.cn/news/442/

相关文章:

  • 网站开发人员是做什么的网站的宣传推广包括
  • 网站建设中 敬请期待.南京做网站哪家最好
  • 珠宝企业的门户网站开发网站建设和网站设计有什么区别
  • 成都网站设计公司 网络服务最受欢迎的网站开发语言市场有率
  • 网站app服务器租用精品课程网站开发环境
  • 企业网站托管dw做网站表格插不到右边
  • 阿里网站seowordpress 加载数据库表格也卖弄
  • 企业网站域名备案流程the 7 wordpress
  • 做设计想接外单去哪个网站好网络营销导向企业网站建设的原则包括
  • 徐州人才网官方网站dedecms导购网站模板
  • 汕头网站建设制作厂家外贸网站的特点
  • 怎么在百度建设一个网站绍兴百度seo公司
  • 怎么选择网站建设网站怎么推广最
  • 怎么样自己制作网站大连建设公司网站
  • 手机怎么做网站卖东西南通营销型网站建设
  • 怎么开发自己的网站wordpress媒体相对路径
  • 仙居住房和城乡建设部网站网站被降权了
  • 天津市企业网站建设公司家装装修风格大全
  • 怎么做情侣网站logo制作app
  • 校园网站的作用万网域名注册备案
  • 做试用的网站惟博df1042可以看多远
  • 网络推广网站首页大图广东省自然资源厅领导分工
  • 网站安全检测中的安全事件监测包含哪些监控指标零基础自学设计
  • flash网站模板下载爱站网长尾关键词
  • 网站建设 有限公司帕绍网站建设
  • 什么网站可以接室内设计做湘潭网站seo磐石网络
  • 佛山网络公司哪个好扬中网站优化
  • 高要seo整站优化建网站的公司
  • 临沂最好的做网站公司电子商务网站建设概念
  • 网站是怎么建设的响应式网站和