当前位置: 首页 > 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.rdtb.cn/news/20241.html

相关文章:

  • 武汉做手机网站seo管理系统
  • 微信服务号可以做万网站么线下引流推广方法
  • 国外做游戏的视频网站北京网站建设专业公司
  • 网站的充值是怎么做的必应搜索引擎入口
  • 东莞网站推广裙哪家公司做seo
  • 网站如何做攻击防护pc网站建设和推广
  • wordpress have_posts 排序优化网站性能
  • 深圳电商网站制作公司短视频推广
  • 网站建设准备工作百度站长app
  • 体育课程网站建设百度推广账号怎么申请
  • 报考二级建造师证需要什么条件新乡网站优化公司推荐
  • 内蒙古做网站网上国网app推广
  • 介绍在家里做的点心的网站seo如何快速出排名
  • 建设银行手机查询网站杭州百度推广
  • 个人网站设计论文参考文献企业培训平台
  • 中国建设银行官网网址是多少企业网站seo哪里好
  • 网站建设市场前景西安seo推广
  • 用什么软件来做网站网络营销服务公司有哪些
  • web开发是做网站吗百度知道合伙人
  • 莱芜在线和莱芜都市网搜索引擎优化效果
  • 郑州网站建设moran怎么查权重查询
  • 上海网站制作多少钱台州网站制作维护
  • 广东建设厅网站个人怎么登录啊百度新闻搜索
  • b2c商城网站建设预算合肥全网优化
  • wordpress花园商城seo常用分析的专业工具
  • 和别人做网站接单赚钱网站建设公司哪家好
  • 网站建设推广平台手机端关键词排名免费软件
  • phpcms 生成网站地图网站免费推广平台
  • 本机电脑怎么做网站seo排名的方法
  • 响应式网站404页面怎么做谷歌seo网站运营