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

a站在线观看人数在哪网络推广哪个平台好

a站在线观看人数在哪,网络推广哪个平台好,吉林最新消息今天新增,做死活题网站目录 建造者模式盖房项目需求基本介绍四个角色实例代码注意事项和细节抽象工厂模式 VS 建造者模式 建造者模式 盖房项目需求 传统方式:打地基,砌墙,封顶 盖房子步骤 public abstract class AbstractHouse {// 地基public abstract void b…

目录

  • 建造者模式
    • 盖房项目需求
    • 基本介绍
    • 四个角色
    • 实例代码
    • 注意事项和细节
    • 抽象工厂模式 VS 建造者模式

建造者模式

盖房项目需求

  • 传统方式:打地基,砌墙,封顶

盖房子步骤

public abstract class AbstractHouse {// 地基public abstract void buildBasic();// 砌墙public abstract void buildWall();// 封顶public abstract void buildFed();// 建造public void build(){buildBasic();buildWall();buildFed();}
}

盖普通房子

public class CommonHouse extends AbstractHouse{@Overridepublic void buildBasic() {System.out.println("普通房子打地基");}@Overridepublic void buildWall() {System.out.println("普通房子砌墙");}@Overridepublic void buildFed() {System.out.println("普通房子封顶");}
}

测试

public class Client {public static void main(String[] args) {new CommonHouse().build();}
}

这种方式的优缺点

  • 优点是简单好理解,简单易操作
  • 设计的程序结构,过于简单,乜有设计缓存层对象,程序的扩展和维护性不好,也就是说,这种设计方案,把产品(即:房子)和 创建产品的过程(即:建房子流程)封装在一起,耦合性增强了
  • 解决方案:将产品和产品建造过程解耦==> 建造者模式

基本介绍

  • 建造者模式又叫生成器模式,是一种对象构建模式,他可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象

  • 建造者模式是一步一步创建一个复杂的对象,他允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节

四个角色

  • Product(产品角色): 一个具体的产品对象
  • Builder (抽象建造者): 创建 Product对象的各个部件指定的接口/抽象类
  • ConcreteBuilder (具体建造者): 实现接口,构建和装配各个部件
  • 建造一个使用Builder接口的对象,它主要是用于创建一个复杂的对象,它主要有两个作用,一个是:隔离了产品和对象的生产过程,另一个是:负责控制产品对象的生产过程

image-20231105174533726

实例代码

image-20231105174936783

抽象的建造者 ==> Build

public interface HouseBuild {House HOUSE = new House();// 将建造的流程规定好void buildBasic();void buildWall();void buildRoofed();// 返回建造的房子default House buildHouse() {return HOUSE;}
}
  • 产品

image-20231105182642338

  • 具体建造者 ConcreteBuilder (具体建造者)
public class HighHouse implements HouseBuild {@Overridepublic void buildBasic() {System.out.println("高楼打地基");}@Overridepublic void buildWall() {System.out.println("高楼打地基");}@Overridepublic void buildRoofed() {System.out.println("高楼打地基");}
}
public class CommonHouse implements HouseBuild {@Overridepublic void buildBasic() {System.out.println("普通房子打地基");}@Overridepublic void buildWall() {System.out.println("普通房子打地基");}@Overridepublic void buildRoofed() {System.out.println("普通房子打地基");}
}

Director (指挥者)

public class HouseDirect {private HouseBuild houseBuild = null;// 使用构造器注入houseBuild对象public HouseDirect(HouseBuild houseBuild) {this.houseBuild = houseBuild;}public void setHouseBuild(HouseBuild houseBuild) {this.houseBuild = houseBuild;}// 建造房子public House constructHouse(){houseBuild.buildBasic();houseBuild.buildWall();houseBuild.buildRoofed();return houseBuild.buildHouse();}
}

测试

public class Client {public static void main(String[] args) {System.out.println("---普通房子---");HouseBuild commonHouseBuild = new CommonHouse();HouseDirect houseDirect = new HouseDirect(commonHouseBuild);houseDirect.constructHouse();System.out.println("---高楼---");HouseBuild highHouseBuild = new HighHouse();// 修改houseDirect为HighHousehouseDirect.setHouseBuild(highHouseBuild);houseDirect.constructHouse();}
}

注意事项和细节

  • 客户端(使用程序)不必知道产品内部组成的细节,将产品本身与产品的创建过程解耦,使得相同的创建过程可以创建不同的产品对象
  • 每一个具体建造者都相对独立,而与其他的具体建造者无关,因此可以很方便地替换具体建造者或增加新的具体建造者,用户使用不同的具体建造者即可得到不同的产品对象
  • 可以更加精细的控制产品的创建过程,将复杂产品的创建步骤分解在不同的方法中,使得创建过程更加的清晰,也更方便使用程序来控制创建过程
  • 增加新的具体建造者无须修改原有类库的代码,指挥者类针对抽象建造者类编程,系统扩展方便,符合开闭原则
  • 建造者模式所创建的产品一般具有较多的共同点,其组成部分相似, 如果产品之间的差异性很大,则不适合使用建造者模式 因此其使用范围收到一定的影响
  • 如果产品的内部变化很复杂,可能会导致需要定义很多具体建造者类来实现这种变化,导致系统变得很庞大,因此在这种情况下,要考虑是否选择建造者模式

抽象工厂模式 VS 建造者模式

抽象工厂模式实现对产品家族的创建,一个产品家族是这样的一系列产品:具有不通分类维度的产品组合,采用抽象工厂模式不需要关心构建过程,只关心什么产品由什么工厂生产即可,而建造者模式则是要按照指定的蓝图建造产品,他的主要目的是通过组装零配件而生产一个新产品

http://www.tj-hxxt.cn/news/70650.html

相关文章:

  • 滨州做网站搜索排名优化
  • wordpress4.7英文版网站优化推广价格
  • 红豆梧州论坛西安seo和网络推广
  • 电商网站建设需求分析 实例题临沂森佳木业有限公司
  • 专业的手机网站建设网络营销的方式和方法
  • 网站建设 ur建站网站一般需要怎么推广
  • 自定义网站建设团队百度地图优化排名方法
  • 网站描述怎么写好seo综合查询平台
  • 网站关键词怎么添加制作网站需要的技术与软件
  • 深圳服装外贸网站建设百度竞价托管运营
  • 一流的江苏网站建设信息流广告哪个平台好
  • 商业网站建设案例百度快速收录开通
  • 建设一个网站需要什么中山口碑seo推广
  • 长春做高端网站公司注册平台
  • 网站开发的实例公司调查公司
  • 什么网站有女人跟狗做的外贸网站优化公司
  • 做网站建设需要什么工具域名交易平台
  • 类似于众人帮的做任务赚佣金网站智谋网站优化公司
  • 做简历的网站有seo企业培训班
  • 深圳网站制作运营信息服务平台有哪些
  • 长春建站my63777免费域名查询2023年
  • 做网站怎么赚钱 注册上海网站seo优化
  • 南城区网站仿做南京seo排名公司
  • 中国建设基础设施总公司 网站磁力搜索器
  • 网页制作工具中可进行网页内容定位seo网站推广方案
  • 医药网站源代码苏州网站优化公司
  • 做网站域名后缀选择网络推广哪家好
  • js获取网站域名谷歌搜索引擎免费入口镜像
  • 外包做网站不付尾款html网页设计模板
  • 我在学校志愿队做网站的经历进一步优化