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

云南建投第七建设有限公司网站百度wordpress插件

云南建投第七建设有限公司网站,百度wordpress插件,在线制作图片软件,商城网站如何做建造者模式 建造者模式案例与工厂模式的区别:Builder 注解 建造者模式 建造者模式是将一个复杂对象的构件与表示分离,使得同样的构件过程可以创建不同的表示。 建造者模式将内部构件的创建和组装分割开,一般使用链式编程,代码整洁…

建造者模式

  • 建造者模式
    • 案例
    • 与工厂模式的区别:
    • @Builder 注解

建造者模式

建造者模式是将一个复杂对象的构件与表示分离,使得同样的构件过程可以创建不同的表示。
建造者模式将内部构件的创建和组装分割开,一般使用链式编程,代码整洁优雅

案例

建造者模式比较简单,这里就直接上代码了

以 RabbitMQClient 为例实现建造者模式

public class RabbitMQClient {// 私有构造,目标类的构造方法要传入一个Builder对象private RabbitMQClient(Builder builder){}// builder类位于目标类的内部,并且使用static修饰public static class Builder{// 保证不可变对象的密闭性private String host = "127.0.0.1";private int port = 5672;private int mode;private String exchange;private String queue;private boolean isDurable = true;int connectTime = 1000;public String getHost() {return host;}public Builder setHost(String host) {this.host = host;return this;}public int getPort() {return port;}public Builder setPort(int port) {this.port = port;return this;}public int getMode() {return mode;}public Builder setMode(int mode) {this.mode = mode;return this;}public String getExchange() {return exchange;}public Builder setExchange(String exchange) {this.exchange = exchange;return this;}public String getQueue() {return queue;}public Builder setQueue(String queue) {this.queue = queue;return this;}public boolean isDurable() {return isDurable;}public Builder setDurable(boolean durable) {isDurable = durable;return this;}public int getConnectTime() {return connectTime;}public Builder setConnectTime(int connectTime) {this.connectTime = connectTime;return this;}//    builder提供 build()方法,实现目标对象的创建public RabbitMQClient build(){if (mode == 1) {// 工作队列模式不需设计交换机,但是队列名称一定要有if (exchange != null) {throw new RuntimeException("工作队列模式不需设计交换机");}if (queue == null || queue.trim().equals("")) {throw new RuntimeException("工作队列不能为空");}if (isDurable == false) {throw new RuntimeException("工作队列模式必须开启持久化");}} else if (mode == 2) {// 路由模式必须设计交换机,但是不能设计队列if (exchange == null) {throw new RuntimeException("路由模式必须设计交换机");}if (queue != null) {throw new RuntimeException("路由模式无需设计队列名称");}}return new RabbitMQClient(this);}}public void sendMsg(String msg){System.out.println("发送消息:"  + msg);}}

测试代码如下:

@Test
public void builderTest(){RabbitMQClient client = new RabbitMQClient.Builder().setHost("192.168.11.111").setMode(1).setPort(5672).setQueue("queue-test").build();client.sendMsg("this is test");
}

与工厂模式的区别:

工厂模式注重整体对象的创建,建造者模式注重构件的创建,然后再将构件组装成一个完整的对象。
一般情况下,建造者模式创建的对象更复杂
工厂模式是生产工厂,建造者模式是组装工厂

这里引申一下建造者模式简单构件方法——使用lombok 包下面的 @Builder 注解

@Builder 注解

使用@Builder 注解 可以方便快捷使用 建造者模式
下面使使用案例

@Builder
public class RabbitMQClient2 {private String host = "127.0.0.1";private int port = 5672;private int mode;private String exchange;private String queue;private boolean isDurable = true;int connectTime = 1000;public void sendMsg(String msg){System.out.println("发送消息:"  + msg);}}

测试代码:

/*** lombok @Builder 注解使用*/
@Test
public void builder2Test(){RabbitMQClient2 client = RabbitMQClient2.builder().host("192.168.11.111").mode(1).port(5672).queue("queue-test").build();client.sendMsg("this is test");
}
http://www.yayakq.cn/news/366687/

相关文章:

  • 广西网站建设推荐网站建设发朋友圈的图片
  • 玉环建设局网站销售营销方案100例
  • 做网站视频存储健身网站怎么做
  • 绝对大气漂亮的响应式网站后台模板门户网站编辑联系方式
  • 爱站seo工具包wordpress页面转文章
  • 北京专业网站设计推荐wordpress域名替换
  • 做ppt找图片网站中天建设集团有限公司是央企吗
  • 东莞网站优化方法买网站不给我备案
  • 宁城网站建设网站建设iis配置
  • 网站添加友情链接特价旅游机票网站建设
  • 怎样做购物网站怎么样建立自己的网站
  • swift 网站开发注册公司怎么查询
  • 设计比较好的网站中山seo技术
  • 商城网站开发多久网站备案信息被删除
  • 旅游类网站开发设计报告百度入驻
  • 漯河网站seowordpress 直播
  • vps 需刷新几次才能打开网站分类信息多城市网站
  • 网站的软件维护包括什么天津平台网站建设推荐
  • 江安县建设招标网站上海三大设计院
  • 学在郑州app下载温州做网站整站优化
  • 做旅游攻略什么网站最好wordpress图片之间空一行
  • 企业网站建设的具体需求天津做一个简单的网站
  • 画册欣赏网站建设网站需要什么资质
  • 长沙建网站企业网上开店的流程是什么
  • 网站建设属于什么职能多wordpress整合
  • 用织梦做的网站 图片打开很慢山东网站建设开发外包
  • 建设银行网站功能介绍企业网站建设分析
  • 广州专业的网站制作西安的互联网公司有哪些
  • 深圳云网站建站公司商丘网站制作教程
  • 长春火车站是北站吗小型app开发公司