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

网站中的下拉菜单做网站设计的需要什么材料

网站中的下拉菜单,做网站设计的需要什么材料,湖南网站建站系统哪家好,注册城乡规划师目录 简介 四个角色 应用场景 实现步骤 和工厂模式的区别 简介 建造者模式也叫生成器模式,是一种对象构建模式;它可以把复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象;…

目录

简介

四个角色

应用场景

实现步骤

和工厂模式的区别


简介

建造者模式也叫生成器模式,是一种对象构建模式;它可以把复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象;建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容,就可以构建它们,用户不需要知道内部的具体构建细节;

四个角色

1. Product(产品角色):一个具体的产品对象

2. Builder(抽象建造者):创建一个 Product 对象的各个部件指定的接口/抽象类

3. ConcreteBuilder(具体建造者):实现接口,构建和装配各个部件

4. Director(指挥者):构建一个实用 Builder 接口的对象;它主要是用于创建一个复杂的对象,它主要有两个作用:隔离了客户和对象的生产过程;负责控制产品对象的生产过程

应用场景

  • 相同的方法,不同的执行顺序,产生不同的结果
  • 多个部件或零件,都可以装配到对象中,但是产生的结果不同
  • 产品类非常复杂,或者产品类中不同的调用顺序产生不同的结果
  • 初始化一个对象特别复杂,参数多,而且很多参数都具有默认值

实现步骤

这里以建造房屋为例,建造房屋分为 3 个步骤:打地基,建墙,封顶

1. 新建 House.class,即产品角色

/*** 房子类*/
public class House {// 地基private String foundation;// 墙private String wall;// 屋顶private String roof;public String getFoundation() {return foundation;}public void setFoundation(String foundation) {this.foundation = foundation;}public String getWall() {return wall;}public void setWall(String wall) {this.wall = wall;}public String getRoof() {return roof;}public void setRoof(String roof) {this.roof = roof;}
}

2. 新建 HouseBuilder.class,这是一个抽象类,定义了建造房屋的基本流程和规范

/*** 房屋建造指挥者, 指定建房流程*/
public abstract class HouseBuilder {protected House house = new House();// 打地基public abstract void buildFoundation();// 建墙public abstract void buildWall();// 封顶public abstract void buildRoof();// 建房流程public House buildHouse() {return house;}
}

3. 新建 VillaHouseBuilder.class,继承 HouseBuilder.class,实现具体的别墅建造过程

/*** 别墅类-实际房子建造*/
public class VillaHouse extends HouseBuilder {@Overridepublic void buildFoundation() {house.setFoundation("别墅-地基30米");}@Overridepublic void buildWall() {house.setWall("别墅-砖墙");}@Overridepublic void buildRoof() {house.setRoof("别墅-瓦顶");}
}

4. 新建 HouseDirector.class,指挥者,负责具体的创建 house 的过程

/*** 指挥者, 控制房子创建流程*/
public class HouseDirector {private HouseBuilder houseBuilder;public HouseBuilder getHouseBuilder() {return houseBuilder;}public void setHouseBuilder(HouseBuilder houseBuilder) {this.houseBuilder = houseBuilder;}// 具体建造过程public House constractVillaHouse() {houseBuilder.buildFoundation();houseBuilder.buildWall();houseBuilder.buildRoof();return houseBuilder.buildHouse();}
}

5. 测试一下对象的创建

public static void main(String[] args) {VillaHouse villaHouse = new VillaHouse();HouseDirector houseDirector = new HouseDirector();houseDirector.setHouseBuilder(villaHouse);House house = houseDirector.constractVillaHouse();System.out.println("别墅建造信息: ");System.out.println(house.getFoundation());System.out.println(house.getWall());System.out.println(house.getRoof());
}

其实观察上面的代码,我们发现,建造者模式主要是把对象的创建过程分离了,创建和表示分离;如果我们需要创建不同的对象,只需再创建建造者和指挥者即可;如果建造的流程有变化,我们也只需要调整指挥者即可;这在一定程度上带来了代码的臃肿,但达到了解耦的效果,所以这种模式适合创建复杂的对象

和工厂模式的区别

  • 建造者模式更加注重方法的调用顺序,工厂模式注重创建对象
  • 创建对象的力度不同,建造者模式创建复杂的对象,由各种复杂的部件组成,而工厂模式创建的对象都一样
  • 关注点不一样,工厂模式只需要把对象创建出来就可以了,而建造者模式不仅要创建出对象,还要关注对象由哪些部件组成
  • 建造者模式根据建造过程中的顺序不一样,可以创建各种不同的对象

http://www.yayakq.cn/news/323307/

相关文章:

  • 网站建设调查重庆微网站开发公司
  • ie 10 常用网站wordpress 前端发帖
  • 网站建设的参考文献温州网站制作价格
  • 萧山建设信用网站上海建设项目环保验收公示网站
  • 织梦门户网站源码下载搜素引擎优化
  • 规范网站建设情况的报告苏州园区租房
  • 浙江网站建设公司地址互联网设计师leader
  • 深圳营销型网站建设公司选择哪家好百度网站快速优化
  • 传媒公司网站建设思路微网站 举例
  • 泉州网站页面设计公司做网站工资年新多少在广东
  • 建设企业网站的时间网站代理访问是什么意思
  • php户外运动产品企业网站源码科技公司名字大全参考
  • 网站建设费需要分摊吗做二手车网站需要什么手续费
  • 柯桥做网站有哪些公司网站建设情况介绍
  • 花桥网站建设门户网站建设重建方案
  • php是网站开发的语言吗网站建设公司软件开
  • 做团购的家居网站有哪些卧龙区网站建设哪家好
  • 昆明网站建设开发专门做销售招聘网站
  • 怎么自己设计网站接单网
  • 萧山网站建设xssemwordpress怎么做微博
  • 站长之家ip地址归属查询网站建站哪个好
  • 温州市建设质量监督站网站wordpress主题如何更换
  • 专业网站建设包括哪些政民互动平台
  • 为什么做的网站打开自动缩放全国信用企业信息查询系统
  • 磁县专业做网站巢湖网站建设
  • 重庆网站建站系统哪家好传媒视频软件下载网站
  • 建站用wordpress 起飞了厦门 网站建设 公司哪家好
  • 虚拟商城网站wordpress主题slcorp破解
  • 德州网站收录火山软件开发平台教程
  • 企业官方网站系统建设简单的网站建立一般多少钱