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

网络营销做女鞋的网站设计阿里云租的域名怎么做网站

网络营销做女鞋的网站设计,阿里云租的域名怎么做网站,广州seo网站推广顾问,wordpress图标代码目录 一、什么是建造者模式 二、建造者模式的应用场景 三、建造者模式的优缺点 3.1. 优点 3.2. 缺点 四、建造者模式示例 4.1. 问题描述 4.2. 问题分析 4.3. 代码实现 五、建造者模式的另一种实现方式 六、总结 一、什么是建造者模式 建造者模式#xff08;Builder…目录 一、什么是建造者模式 二、建造者模式的应用场景 三、建造者模式的优缺点 3.1. 优点 3.2. 缺点 四、建造者模式示例 4.1. 问题描述 4.2. 问题分析 4.3. 代码实现 五、建造者模式的另一种实现方式 六、总结 一、什么是建造者模式 建造者模式Builder Pattern是一种创建型设计模式Creational Pattern可以将部件和其组装过程分开一步一步创建一个复杂的对象。用户只需要指定复杂对象的类型就可以得到该对象而无须知道其内部的具体构造细节。它提供了一种更加灵活和可扩展的方式来创建对象同时也避免了构造函数参数过多导致的代码可读性和维护性问题。 建造者模式主要包含以下四类角色 产品Product表示被构建的复杂对象。通常包含多个部分具体部分的创建由具体建造者负责。抽象建造者Builder定义了创建产品各个部分的抽象接口以及返回产品的方法。具体建造者Concrete Builder实现了抽象建造者接口负责具体部分的创建并返回一个组装好的产品。指挥者Director调用具体建造者来创建产品对象并控制构建过程的顺序。 二、建造者模式的应用场景 建造者模式创建的是复杂对象其产品的各个部分经常面临较大变化但将它们组合在一起的算法却相对稳定所以它适用于以下情况 当对象的构建过程较为复杂包含多个步骤或者需要按照一定顺序构建时。当需要创建的对象具有多个表示但构建过程相同时可以使用建造者模式。当需要创建的对象具有复杂的内部结构且需要按照一定的步骤进行构造时可以使用建造者模式。 三、建造者模式的优缺点 3.1. 优点 封装性建造者模式将对象的构建过程和表示过程分离客户端只需要知道产品的类型以及包含哪些部分而不需要知道内部的具体构建细节。这样可以更好地封装对象提高代码的可读性和可维护性。可扩展性建造者模式允许在不修改已有代码的情况下扩展新的产品部件只需要增加新的具体建造者类即可。这样可以提高系统的可扩展性降低维护成本。清晰性通过将构建过程分解为多个步骤使得构建过程更加清晰便于维护和理解。灵活性客户端不必知道产品内部组成的细节建造者可以对创建过程逐步细化而不对其它模块产生任何影响。 3.2. 缺点 产品的组成部分必须相同建造者模式要求所有产品都具有相同的组成部分这在一定程度上限制了其使用范围。如果某些产品需要特殊的构建过程或者组成部分不同那么这种模式可能就不适用。产品内部变化复杂时维护成本较高如果产品的内部变化复杂那么当产品内部发生变化时所有的Builder类都需要同步修改这可能会导致维护成本较高。 四、建造者模式示例 4.1. 问题描述 假设我们要制造一辆汽车汽车由车身、引擎、轮胎等部件组成。汽车的不同部件都有不同的规格可供选择如何通过代码来实现汽车的构建过程。 4.2. 问题分析 问题的目的是要通过代码来创建汽车的实例对象汽车的组成都是由车身、引擎等部件构成只是不同部件有不同的表示规格这就符合了建造者模式的使用场景。问题当中的汽车(Car)显然就是我们建造者模式中的产品(Product)汽车中需要有多个部件车身(body)、引擎(engine)、轮胎(tire)为了统一创建汽车的功能接口我们定义其抽象建造者(Builder)为汽车建造者(CarBuilder)最后定义一个汽车建造指挥者(CarDirector)用来协调建造过程当我们有了一个新的产品时就可以通过新增一个汽车创建者的实现类来完成新产品的组成定义比如有一个汽车产品A其车身为碳纤维(carbon fibre)的引擎是电动的(electric)轮胎是充气橡胶的(inflatable rubber)那么我们就可以新增一个A款汽车的建造者(CarABuilder)来实现这款汽车对象的创建。 4.3. 代码实现 经过上一步的分析之后下面我们通过代码来实现它 /*** 定义汽车类*/ class Car{private String body;private String engine;private String tire; ​public String getBody() {return body;} ​public void setBody(String body) {this.body body;} ​public String getEngine() {return engine;} ​public void setEngine(String engine) {this.engine engine;} ​public String getTire() {return tire;} ​public void setTire(String tire) {this.tire tire;} } ​ /*** 汽车创建者接口*/ interface CarBuilder{void buildBody();void buildEngine();void buildTire();Car getCar(); } ​ /*** 汽车创建指挥者*/ class CarDirector{private final CarBuilder carBuilder;public CarDirector(CarBuilder carBuilder){this.carBuilder carBuilder;}public Car construct(){carBuilder.buildBody();carBuilder.buildEngine();carBuilder.buildTire();return carBuilder.getCar();} } ​ /*** A型号汽车创建者*/ class CarABuilder implements CarBuilder{private final Car car new Car();Overridepublic void buildBody() {car.setBody(carbon fibre);}Overridepublic void buildEngine() {car.setEngine(electric);}Overridepublic void buildTire() {car.setTire(inflatable rubber);}Overridepublic Car getCar() {return car;} } 当我们需要创建一个A型号的汽车的对象时我们只需要这样做就可以了 Car carA new CarDirector(new CarABuilder()).construct(); 五、建造者模式的另一种实现方式 当一个对象的属性过多时通过常规的实例化方法实现的代码的可读性会非常差并且还需要使用者对内部的所有属性都有一定的了解此时我们可以通过给这个类专门写一个内部类作为建造者的方式将一些创建逻辑或者约束条件封装到建造者内部使使用者可以较为简单地创建复杂对象。 我们以java.util包下的抽象类Calendar为例打开Calendar类我们可以发现里面有大量的属性 并且作为抽象类Calendar类还会有不同的实现 如果没有建造者的话在创建一个Calendar的对象的时候无疑是很头疼的。所以Calendar类内部为我们提供了一个建造者 通过这个建造者我们就可以很轻松地创建一个Calendar类的实例了 Calendar.Builder builder new Calendar.Builder(); builder.setCalendarType(iso8601); builder.setDate(2024, 3, 6); Calendar calendar builder.build(); System.out.println(calendar.getTime()); 六、总结 建造者模式是一种非常有用的设计模式它可以帮助我们更好地组织复杂对象的构建过程提高代码的可读性和可维护性。通过将构建过程与表示分离建造者模式使得对象的创建变得更加灵活和可控。在实际项目中我们可以根据具体需求来选择是否使用建造者模式以提高代码的质量和可扩展性。 希望通过本文的介绍您对建造者模式有了更深入的理解能够在实际项目中灵活运用。谢谢阅读
http://www.zqtcl.cn/news/998060/

相关文章:

  • 北京企业建站系统模板网站建设公司专业网站科技开发
  • 工商注册在哪个网站手机浏览器网站开发
  • 建设电影网站的目的各个国家的google网站
  • centos 网站搭建中国互联网协会调解中心
  • 手机端视频网站模板下载做单页网站需要做什么的
  • 太原网站建设外包中国做乱的小说网站
  • 青海做网站哪家好旅游网站的功能及建设
  • 百度网站优化工具汉川网页设计
  • 网站标签优化怎么做可以看图片的地图什么软件
  • 品牌网站建设9小蝌蚪9wordpress会务网站模版
  • 免费推广网站入口202网页与网站建设
  • 武夷山市网站建设网站标签制作
  • 广州网站定制开发方案河南省新闻发布会直播
  • 普陀网站建设哪家便宜网站建设辶金手指排名十五
  • 网站怎么做百度百科租房网站开发视频教程
  • 动态做网站做自己的网站不是免费的
  • 小学校园门户网站建设方案宁波seo软件
  • 想自己做网站做推广从哪些方面进行网站建设
  • 北京南站在哪个区哪个街道html表白简单代码
  • 海口网站建设流程郑州三牛网站建设
  • 谁有国外hs网站沈阳关键字优化公司
  • wordpress双站企业品牌类网站
  • 网站架构软件做淘客app要网站吗
  • 云南云桥建设股份有限公司官方网站汽车seo是什么意思
  • 陕西省建设厅执业资格注册中心网站报名系统外贸网站 字体
  • 个人html网站百度一下生活更好
  • 做网站公司徐汇服务器 网站 搬家
  • 河北省和城乡建设厅网站首页单页设计图片
  • 海东地网站建设南京市建设局网站栖霞
  • 1g做网站空间a3网站建设