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

微商城网站建设鄂州建设工程造价信息管理网站

微商城网站建设,鄂州建设工程造价信息管理网站,wordpress 同步数据库,发稿吧一、问题场景 当我们需要创建资源池配置对象的时候#xff0c;资源池配置类里面有以下成员变量: 如果我们使用new关键字调用构造函数#xff0c;构造函数参数列表就会太长。 如果我们使用set方法设置字段值#xff0c;那minIdlemaxIdlemaxTotal的约束逻辑就没地方…一、问题场景 当我们需要创建资源池配置对象的时候资源池配置类里面有以下成员变量: 如果我们使用new关键字调用构造函数构造函数参数列表就会太长。 如果我们使用set方法设置字段值那minIdlemaxIdlemaxTotal的约束逻辑就没地方写了。 二、问题分析 资源配置类仅靠自己本身无处安放字段属性之间的约束逻辑仅靠本身。那就需要引入另一个类去处理检验逻辑。这就要用到这期要讲的建造者模式。 三、建造者模式定义 建造者模式将复杂对象的建造过程抽象出来让这个抽象过程的不同实现方法可以构建出不同表现属性的对象。 1builder抽象建造者为创建一个产品对象的各个部件指定抽象接口。 2ConcreteBuilder具体建造者实现Builder的接口以构造和装配该产品的各个部件定义并明确它所创建的表示并提供一个检索产品的接口。 3Director指挥者构造一个使用Builder接口的对象。 4 Product产品角色表示被构造的复杂对象。ConcreteBuilder创建该产品的内部表示并定义它的装配过程包含定义组成部件的类包括将这些部件装配成最终产品的接口。 四、建造者模式案例 //Builder角色public interface PersonBuilder {void buildHead();void buildBody();void buildFoot();Person buildPerson();}//具体建造者ConcreteBuilderpublic class ManBuilder implements PersonBuilder {Person person;public ManBuilder() {person new Person();}public void buildbody() {person.setBody(建造男人的身体);}public void buildFoot() {person.setFoot(建造男人的脚);}public void buildHead() {person.setHead(建造男人的头);}public Person buildPerson() {return person;}}//指挥者Directorpublic class PersonDirector {public Person constructPerson(PersonBuilder pb) {pb.buildHead();pb.buildBody();pb.buildFoot();return pb.buildPerson();}}//产品角色Productpublic class Person {private String head;private String body;private String foot;public String getHead() {return head;}public void setHead(String head) {this.head head;}public String getBody() {return body;}public void setBody(String body) {this.body body;}public String getFoot() {return foot;}public void setFoot(String foot) {this.foot foot;}}public class Man extends Person {}//测试案例Test public class Test{ public static void main(String[] args) { PersonDirector pd new PersonDirector(); Person person pd.constructPerson(new ManBuilder()); System.out.println(person.getBody()); System.out.println(person.getFoot()); System.out.println(person.getHead()); } }//结果result 建造男人的身体 建造男人的脚 建造男人的头如果系统中只需要一个具体建造者的话可以省略掉抽象建造者和指导者让Buider自己扮演指导者和建造者双重角色。 五、建造者模式应用 1、java. lang. StringBuilder中的建造者模式 源码中建造者模式角色分析 1Appendable 接口定义了多个append方法(抽象方法), 即Appendable 为抽象建造者, 定义了抽象方法 2AbstractStringBuilder 实现了 Appendable接口方法这里的 AbstractStringBuilder已经是建造者只是不能实例化 3StringBuilder 即充当了指挥者角色同时充当了具体的建造者建造方法的实现是由 AbstractStringBuilder完成, 而StringBuilder 继承了AbstractStringBuilder 2、myBatis里SqlSessionFactoryBuilder和xmlConfigBuilder也采用了建造者模式 六、建造者模式适用场景 1、对象结构复杂 : 对象有非常复杂的内部结构 , 有很多属性 2、构建不同属性对象构建同类型但属性不同的对象 3、分离创建和使用 : 想把复杂对象的创建和使用分离 七、建造者模式和工程模式区别 工厂模式是用来创建不同但是相关类型的对象继承同一父类或者接口的一组子类由给定的参数来决定创建哪种类型的对象。 建造者模式是用来创建一种类型的复杂对象可以通过设置不同的可选参数定制化地创建不同的对象。 八、问题实现 建造者模式已经讲解清楚那开篇提到的资源池配置对象用建造者模式怎么设计实现呢你自己可以先试试实现一下下期文章揭晓答案。
http://www.hkea.cn/news/14365878/

相关文章:

  • 阿里云网站建设9元seo关于网站搜索
  • 手机网站关键编写一个android应用程序
  • 电商网站建设需要多少钱一年企业vi品牌设计公司
  • 好一点的网站建设网站被墙301怎么做
  • 建设一个交易网站要用多少钱搜索引擎营销原理是什么
  • 销售网站设计方案电销客户数据怎么买
  • 做餐饮网站邀请推广app
  • 网站开发进度计划做的网站图片不显示
  • 公司网站制作需要找广告公司么手机网站建设代码
  • 成都做公司网站wordpress弹穿登陆
  • 湘西州建设银行网站求个网站你们知道的
  • 济南建站推荐企汇优见效付款网站免费空间购买
  • 郑州彩票网站建设沈阳响应式网站建设
  • 烟台高端网站建设公司建筑模板尺寸规格有几种
  • 网站开发类参考文献进入淘宝网官网首页 淘宝
  • 深圳微信建网站网站后台网址在哪输入
  • 帝国软件怎么做网站建设银行宁德分行网站
  • 犀牛云做网站费用合肥网站建设是什么
  • 佛山微网站开发哪家好seo培训网
  • 做酒店需要怎么上网站人社网站行风建设的建设和意见
  • 官方网站建设的意义上海专业seo排名优化
  • 网站二级域名怎么弄网站建设及推广好学习吗
  • 学校做网站有些什么好处中信建设有限责任公司资质
  • wordpress个人网站模板兰州忠旗网站建设科技有限公司
  • 航佳网站建设2024房地产趋势分析
  • 微信开店怎么注册开店流程北京seo排名服务
  • 网站建设虚拟服务器网站建设督查报告
  • 农村建设自己的网站wordpress网盘搜索引擎
  • wordpress快速建站浙江建设厅 继续教育 网站
  • 有哪些网站建设工作百度站长怎么验证网站