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

制作招聘网页网站优化 推广

制作招聘网页,网站优化 推广,有那个网站可以做报名链接的,临朐网站制作最低价格1.1定义 维基百科定义 生成器模式(英:Builder Pattern)是一种设计模式,又名:建造模式,是一种对象构建模式。 它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象…

1.1定义

维基百科定义
生成器模式(英:Builder Pattern)是一种设计模式,又名:建造模式,是一种对象构建模式。
它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。

简单理解
将一个复杂对象的构建与它的表示分离,使得同样的构建过程,可以创建不同的表示.
用户只需指定需要建造的类型就可以得到它们,建造过程及细节不需要知道。

通用流程
先创建一个初始对象,然后逐渐添加新东西,最后调用 build() 方法完成构建。

1.2适用场景

相同的方法,不同的执行顺序,产生不同的事件结果。
对各部件或零件,都可以配到一个对象中,但是产生的运行结果又不相同时。
产品类非常复杂,或者产品类中的调用顺序不同产生了不同的结果,这个时候使用创建者模式非常合适。
当初始化一个对象特别复杂,如参数多,且很多参数都有默认值时(一个类有多个构造函数的时候,可以考虑使用建造者模式)
需要生成的产品对象有复杂的内部结构,这些产品对象具备共性;
隔离复杂对象的创建和使用,并使得相同的创建过程可以创建不同的产品。
需要生成的对象内部属性本身相互依赖

1.3 优缺点

优点
封装性好,创建和使用分离
扩展性好、建造类之间独立、一定程度上解耦
缺点
产生多余的Builder对象
产品内部发生变化,建造者都要修改,成本较大,所以需要精心设计

建造者模式包含如下角色:

builder(抽象接口) : 为创建一个产品对象的各个部件指定抽象接口。
ConcreteBuilder(抽象接口的具体实现) : 实现Builder的接口以构造和装配该产品的各个部件,定义并明确它所创建的表示,并提供一个检索产品的接口。
Director(接口的构造者和使用者) : 构造一个使用Builder接口的对象。
Product(被构造的复杂对象) : ConcreteBuilder创建该产品的内部表示并定义它的装配过程,包含定义组成部件的类,包括将这些部件装配成最终产品的接口。

示例演示

/*** @Author charles.yao* @Description 户信息(product 产品角色)* @Date 2023/2/10 16:22*/@NoArgsConstructor
@AllArgsConstructor
@Builder
@Data
public class UserInfo {private String id;private String name;private String age;private String phone;
}

/*** @Author charles.yao* @Description 用户信息构建抽象类(builder)* @Date 2023/2/10 16:25*/
public abstract class UserBuilder {public abstract void buildId(String id);public abstract void buildName(String name);public abstract void buildAge(String age);public abstract void buildPhone(String phone);public abstract UserInfo makeUserInfo();}

/*** @Author charles.yao* @Description 学生信息构建器(抽象接口的具体实现)* @Date 2023/2/10 16:29*/
public class StudentUserInfoBuilder extends UserBuilder {private UserInfo userInfo = new UserInfo();public void setUserInfo(UserInfo userInfo) {this.userInfo = userInfo;}@Overridepublic void buildId(String id) {userInfo.setId(id);}@Overridepublic void buildName(String name) {userInfo.setName(name);}@Overridepublic void buildAge(String age) {userInfo.setAge(age);}@Overridepublic void buildPhone(String phone) {userInfo.setPhone(phone);}@Overridepublic UserInfo makeUserInfo() {return userInfo;}
}

/*** @Author charles.yao* @Description 指导建造者建造* @Date 2023/2/10 16:35*/
public class UserInfoDirector {private StudentUserInfoBuilder studentUserInfoBuilder;public void setStudentUserInfoBuilder(StudentUserInfoBuilder studentUserInfoBuilder) {this.studentUserInfoBuilder = studentUserInfoBuilder;}public UserInfo makeUserInfo(String id, String name, String age, String phone) {studentUserInfoBuilder.buildAge(age);studentUserInfoBuilder.buildId(id);studentUserInfoBuilder.buildName(name);studentUserInfoBuilder.buildPhone(phone);return studentUserInfoBuilder.makeUserInfo();}
}

/*** @Author charles.yao* @Description 生成器测试类* @Date 2023/2/10 16:46*/
public class BuilderTest {public static void main(String[] args) {//userInfo 具体创建者StudentUserInfoBuilder studentUserInfoBuilder = new StudentUserInfoBuilder();//指导创建者UserInfoDirector userInfoDirector = new UserInfoDirector();userInfoDirector.setStudentUserInfoBuilder(studentUserInfoBuilder);//指导创建者生成userInfoUserInfo userInfo = userInfoDirector.makeUserInfo("1", "二狗", "20", "110");System.out.println("userInfo" + userInfo.toString());//===========================}
}
http://www.hkea.cn/news/170372/

相关文章:

  • 怎么做1688网站网页制作工具有哪些
  • 一个网站的主题和设计风格最好用的免费建站平台
  • 网站开发主页手机优化游戏性能的软件
  • 怎么做属于自己的域名网站网络策划方案
  • destoon做的网站百度商务合作联系
  • 金山区网站制作网络营销策划书1500字
  • 厦门网站建设制作工具熊猫关键词挖掘工具
  • 徐州网站建设 网站推广百度首页快速排名系统
  • 在线转格式网站怎么做拼多多seo 优化软件
  • 成都理工疫情最新消息贵港seo
  • 网站如何防止攻击怎么自己做一个小程序
  • 企业网站建设英文百度收录
  • wordpress查版本sem和seo的区别
  • 网站设计说明书怎么写网站建设平台官网
  • 有建网站的软件阿里云域名注册万网
  • 站长工具排名分析怎么创建公司网站
  • 网站建设标书四川seo哪里有
  • 接网站开发做多少钱建一个外贸独立站大约多少钱
  • wordpress表单录入seo报告
  • python做网站显示表格星巴克seo网络推广
  • 一个com的网站多少钱管理微信软件
  • 蒙阴网站建设软文代写网
  • 用python做一旅游网站南昌seo计费管理
  • 湖北省建设厅win10优化软件哪个好
  • 湖南企业建站系统平台软文有哪些发布平台
  • 南通 网络 公司网站真正免费建站
  • 做图骂人的图片网站网络服务
  • wordpress主标题副标题seo基础
  • 淮安做网站优化百度竞价排名是什么方式
  • 食品公司网站源码谷歌网页