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

专业公司网站建设电商的推广主要是做什么的

专业公司网站建设,电商的推广主要是做什么的,百年建筑网,4线城市搞网站开发说明#xff1a;本文介绍设计模式中#xff0c;创建型设计模式中的最后一个#xff0c;建造者模式#xff1b; 入学报道 创建型模式#xff0c;关注于对象的创建#xff0c;建造者模式也不例外。假设现在有一个场景#xff0c;高校开学#xff0c;学生、教师、职工都…说明本文介绍设计模式中创建型设计模式中的最后一个建造者模式 入学报道 创建型模式关注于对象的创建建造者模式也不例外。假设现在有一个场景高校开学学生、教师、职工都要办理相关的报道手续如签到、个人信息录入、分配身份证明学生证、教师证、职工证等等 首先创建一个抽象类如下 Person人员类有签到、个人信息、身份证明属性 /*** 人员*/ public class Person {/*** 签到*/private String signIn;/*** 个人信息*/private String profile;/*** 身份证明*/private String idCard;public String getSignIn() {return signIn;}public void setSignIn(String signIn) {this.signIn signIn;}public String getProfile() {return profile;}public void setProfile(String profile) {this.profile profile;}public String getIdCard() {return idCard;}public void setIdCard(String idCard) {this.idCard idCard;} }在创建具体对象之前先创建一个抽象的建造者类用于统一方法定义人员对象 PersonBuilder人员建造者 /*** 抽象建造者*/ public abstract class PersonBuilder {Person person new Person();/*** 签到行为*/public abstract void buildSignIn();/*** 录入个人信息*/public abstract void buildProfile();/*** 办理身份证明*/public abstract void buildIdCard();/*** 建造完成* return*/public Person build() {return person;} }Student学生类继承人员建造者重写学生入学相关方法 /*** 学生入学*/ public class Student extends PersonBuilder {Overridepublic void buildSignIn() {person.setSignIn(学生已签到);}Overridepublic void buildProfile() {person.setProfile(学生信息已录入);}Overridepublic void buildIdCard() {person.setIdCard(学生证已办理);} }Teacher教师类继承人员建造者重写教师入学相关方法 /*** 教师入学*/ public class Teacher extends PersonBuilder {Overridepublic void buildSignIn() {person.setSignIn(老师已签到);}Overridepublic void buildProfile() {person.setProfile(老师个人信息已录入);}Overridepublic void buildIdCard() {person.setIdCard(老师身份证已办理);} }Employee职工类继承人员建造者重写职工入学相关方法 /*** 职工入学*/ public class Employee extends PersonBuilder {Overridepublic void buildSignIn() {person.setSignIn(员工已签到);}Overridepublic void buildProfile() {person.setProfile(员工个人信息已录入);}Overridepublic void buildIdCard() {person.setIdCard(员工身份证已办理);} }再创建一个建造者控制类协调入学后的具体事宜如先签到、后录入个人信息最后才发身份证明返回建造完成的人员对象 PersonController人员入学控制器 /*** 人员入学控制器*/ public class PersonController {/*** 人员入学* return*/public Person construct(PersonBuilder personBuilder) {personBuilder.buildSignIn();personBuilder.buildProfile();personBuilder.buildIdCard();return personBuilder.build();} }Client客户端演示人员入学过程 /*** 客户端*/ public class Client {public static void main(String[] args) {// 一个学生入学Person student new PersonController().construct(new Student());System.out.println(student.getSignIn());System.out.println(student.getProfile());System.out.println(student.getIdCard());System.out.println();// 一个老师入学Person teacher new PersonController().construct(new Teacher());System.out.println(teacher.getSignIn());System.out.println(teacher.getProfile());System.out.println(teacher.getIdCard());} }执行结果可见对象已创建完成 改进与优化 在《设计模式的艺术》第一版刘伟著中作者关于PersonController人员控制器类的作用有两点改进与优化的地方如下 改进可省略PersonController 可在抽象建造者类PersonBuilder人员建造者中定义一个静态的Person变量这样就不需要额外设立一个PersonController类了如下 PersonBuilder抽象人员建造者既统一了方法也完成了建造的流程 /*** 抽象建造者*/ public abstract class PersonBuilder {/*** 定义一个抽象的Person*/protected static Person person new Person();/*** 签到行为*/public abstract void buildSignIn();/*** 录入个人信息*/public abstract void buildProfile();/*** 办理身份证明*/public abstract void buildIdCard();/*** 建造Person* return*/public static Person build(PersonBuilder personBuilder) {personBuilder.buildSignIn();personBuilder.buildProfile();personBuilder.buildIdCard();return person;} }Client客户端使用人员建造者的build()方法建造对象 /*** 客户端*/ public class Client {public static void main(String[] args) {// 一个学生入学Person student PersonBuilder.build(new Student());System.out.println(student.getSignIn());System.out.println(student.getProfile());System.out.println(student.getIdCard());System.out.println();// 一个老师入学Person teacher PersonBuilder.build(new Teacher());System.out.println(teacher.getSignIn());System.out.println(teacher.getProfile());System.out.println(teacher.getIdCard());} }执行效果相同 优化细化建造过程 可以定义一个“钩子”方法“钩子”方法一般是“isXXX”命名的返回值为boolean类型。利用“钩子”方法规定某些人员可以跳过或者必须执行某方法来细化对象建造的流程。如规定教师人员的建造因为教师流动不大可以跳过录入信息流程。 就可以在PersonBuilder类中定义一个“钩子”方法默认返回true即默认所有人员都需要录入个人信息。如下 /*** 抽象建造者*/ public abstract class PersonBuilder {/*** 定义一个抽象的Person*/protected static Person person new Person();/*** 签到行为*/public abstract void buildSignIn();/*** 录入个人信息*/public abstract void buildProfile();/*** 办理身份证明*/public abstract void buildIdCard();/*** 钩子方法表示默认所有人都需要经过buildProfile()方法具体由子类实现*/public boolean isBuildProfile() {return true;}/*** 建造Person* return*/public static Person build(PersonBuilder personBuilder) {personBuilder.buildSignIn();// 根据钩子方法判断是否需要buildProfile()if (personBuilder.isBuildProfile()) {personBuilder.buildProfile();}personBuilder.buildIdCard();return person;} }教师类中可以重写这个“钩子”方法表示不需要执行录入个人信息这个流程了。 /*** 教师入学*/ public class Teacher extends PersonBuilder {Overridepublic void buildSignIn() {person.setSignIn(老师已签到);}Overridepublic void buildProfile() {person.setProfile(老师个人信息已录入);}Overridepublic void buildIdCard() {person.setIdCard(老师身份证已办理);}Overridepublic boolean isBuildProfile() {return false;} }客户端代码不变执行 /*** 客户端*/ public class Client {public static void main(String[] args) {// 一个学生入学Person student PersonBuilder.build(new Student());System.out.println(student.getSignIn());System.out.println(student.getProfile());System.out.println(student.getIdCard());System.out.println();// 一个老师入学Person teacher PersonBuilder.build(new Teacher());System.out.println(teacher.getSignIn());System.out.println(teacher.getProfile());System.out.println(teacher.getIdCard());} } 执行结果可以看到教师确实是没有执行录入个人信息的方法但是因为Person是static修饰的属性打印的是上面学生的值。 那么如果避免这个问题值得思考或者就不省略PersonController类。 小结 建造者模式通过定义一个抽象建造者类封装了对象创建的细节另外通过“钩子”方法可细化对象创建过程降低了系统复杂度维护了系统的灵活性和扩展性。 总结 本文参考《设计模式的艺术》、《秒懂设计模式》两书
http://www.zqtcl.cn/news/925693/

相关文章:

  • 手机网站怎么做SEO优化gzip压缩 wordpress
  • 上下框架 网站app营销的核心是什么
  • 网站开发哪里有培训wordpress 主题 网址导航
  • 深圳市宝安区怎么样百度禁止seo推广
  • 手机电商网站 模板常熟做网站优化
  • 免费的logo设计网站网页设计与制作dw
  • 线上调研问卷在哪个网站上做网页设计学生作业
  • 云南高端网站建设网页设计工作室选址依据
  • 免费的编程自学网站互联网公司网站建设ppt
  • 免费发帖的网站网站空间服务器费用
  • 商城类的网站一般怎么做做ps从哪个网站上下载图片大小
  • 怎么做网站链接支付免费推广网站搭建
  • 威海 网站建设刚刚北京传来重大消息
  • 深圳返利网站开发做网站版权怎么写
  • 上传网站内容做社交电商第一步怎么做
  • 网站icp查询系统wordpress 页面 首页
  • wordpress安装教程wamp搜索引擎优化的英文缩写是什么
  • 成都旅行社网站建设网站建设包含哪些方面
  • 找不到网站后台怎么办韩国网站域名分类
  • 建设商务网站作用积极参与网站信息建设工作
  • 网站开发阶段Oss怎么做静态网站
  • 做科学小制作的视频网站怎么才能建立自己的网站啊
  • 跳蚤市场网站开发背景网站优点
  • 长春网站建设方案咨询怎么做自己的网站平台
  • 网站建设谈单技巧做网站建设科技公司
  • 品牌网站建设4a小蝌蚪网页设计分类
  • 域名注册以后会给你一个账户名密码上传做好的网站文化网站建设需要的功能
  • 企业站用wordpress做好吗那些做环保网站的好
  • 天津有哪些有名的网站建设公司商城网站模板免费
  • 安徽省途顺建设工程有限公司网站制作网站公