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

银川网站建设公司哪家好怎么做外语网站

银川网站建设公司哪家好,怎么做外语网站,域名转接的流程,wordpress 导航栏居中Go和Java实现建造者模式 下面通过一个构造人身体不同部位的案例来说明构造者模式的使用。 1、建造者模式 建造者模式使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式#xff0c;它提供了 一种创建对象的最佳方式。 一个 Builder 类会…Go和Java实现建造者模式 下面通过一个构造人身体不同部位的案例来说明构造者模式的使用。 1、建造者模式 建造者模式使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式它提供了 一种创建对象的最佳方式。 一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。 意图将一个复杂的构建与其表示相分离使得同样的构建过程可以创建不同的表示。 主要解决主要解决在软件系统中有时候面临着一个复杂对象的创建工作其通常由各个部分的子对象用 一定的算法构成由于需求的变化这个复杂对象的各个部分经常面临着剧烈的变化但是将它们组合在一起 的算法却相对稳定。 何时使用一些基本部件不会变而其组合经常变化的时候。 如何解决将变与不变分离开。 关键代码建造者创建和提供实例导演管理建造出来的实例的依赖关系。 应用实例1、去肯德基汉堡、可乐、薯条、炸鸡翅等是不变的而其组合是经常变化的生成出所谓的套 餐。 2、JAVA 中的 StringBuilder。 优点 分离构建过程和表示使得构建过程更加灵活可以构建不同的表示。 可以更好地控制构建过程隐藏具体构建细节。 代码复用性高可以在不同的构建过程中重复使用相同的建造者。 缺点 如果产品的属性较少建造者模式可能会导致代码冗余。 建造者模式增加了系统的类和对象数量。 使用场景1、需要生成的对象具有复杂的内部结构。 2、需要生成的对象内部属性本身相互依赖。 适用性 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。 当构造过程必须允许被构造的对象有不同的表示时。 建造者模式在创建复杂对象时非常有用特别是当对象的构建过程涉及多个步骤或参数时。它可以提供更好的灵活 性和可维护性同时使得代码更加清晰可读。 注意事项与工厂模式的区别是建造者模式更加关注与零件装配的顺序。 2、Java实现建造者模式 package builder// Person type Person interface {GetHead() stringSetHead(string)GetBody() stringSetBody(string)GetFoot() stringSetFoot(string) }package builder// Man type Man struct {head stringbody stringfoot string }func (man *Man) GetHead() string {return man.head }func (man *Man) SetHead(head string) {man.head head }func (man *Man) GetBody() string {return man.body }func (man *Man) SetBody(body string) {man.body body }func (man *Man) GetFoot() string {return man.foot }func (man *Man) SetFoot(foot string) {man.foot foot }package builder// Women type Women struct {head stringbody stringfoot string }func (women *Women) GetHead() string {return women.head }func (women *Women) SetHead(head string) {women.head head }func (women *Women) GetBody() string {return women.body }func (women *Women) SetBody(body string) {women.body body }func (women *Women) GetFoot() string {return women.foot }func (women *Women) setFoot(foot string) {women.foot foot }package builder// PersonBuilder type PersonBuilder interface {buildHead()buildBody()buildFoot()buildPerson() Person }package builder// ManBuilder type ManBuilder struct {person Person }func NewManBuilder() *ManBuilder {return ManBuilder{person: Man{}} }func (manBuilder *ManBuilder) buildHead() {manBuilder.person.SetHead(建造男人的头) }func (manBuilder *ManBuilder) buildBody() {manBuilder.person.SetBody(建造男人的身体) }func (manBuilder *ManBuilder) buildFoot() {manBuilder.person.SetFoot(建造男人的脚) }func (manBuilder *ManBuilder) buildPerson() Person {return manBuilder.person }package builder// WomenBuilder type WomenBuilder struct {person Person }func NewWomenBuilder() *WomenBuilder {return WomenBuilder{person: Man{},} }func (womenBuilder *WomenBuilder) buildHead() {womenBuilder.person.SetHead(建造女人的头) }func (womenBuilder *WomenBuilder) buildBody() {womenBuilder.person.SetBody(建造女人的身体) }func (womenBuilder *WomenBuilder) buildFoot() {womenBuilder.person.SetFoot(建造女人的脚) }func (womenBuilder *WomenBuilder) buildPerson() Person {return womenBuilder.person }package buildertype PersonDirector struct {builder PersonBuilder }func (pd *PersonDirector) SetBuilder(pb PersonBuilder) {pd.builder pb }func NewDirector(p PersonBuilder) *PersonDirector {return PersonDirector{builder: p,} }func (d *PersonDirector) BuildPerson() Person {d.builder.buildHead()d.builder.buildBody()d.builder.buildFoot()return d.builder.buildPerson() }package mainimport (fmt. proj/builder )func main() {womenBuilder : NewWomenBuilder()manBuilder : NewManBuilder()director : NewDirector(womenBuilder)women : director.BuildPerson()fmt.Println(women.GetHead())fmt.Println(women.GetBody())fmt.Println(women.GetFoot())director.SetBuilder(manBuilder)man : director.BuildPerson()fmt.Println(man.GetHead())fmt.Println(man.GetBody())fmt.Println(man.GetFoot()) }# 输出 建造女人的头 建造女人的身体 建造女人的脚 建造男人的头 建造男人的身体 建造男人的脚3、Go实现建造者模式 package com.builder;// Person public class Person {private String head;private String body;private String foot;public String getHead() {return head;}public void setHead(String head) {this.head head;}public String getBody() {return body;}public void setBody(String body) {this.body body;}public String getFoot() {return foot;}public void setFoot(String foot) {this.foot foot;} }package com.builder;// Man public class Man extends Person {}package com.builder;// Women public class Women extends Person { }package com.builder;// PersonBuilder public abstract class PersonBuilder {Person person;abstract void buildHead();abstract void buildBody();abstract void buildFoot();abstract Person buildPerson();}package com.builder;// ManBuilder public class ManBuilder extends PersonBuilder {public ManBuilder() {person new Man();}Overridepublic void buildHead() {person.setHead(建造男人的头);}Overridepublic void buildBody() {person.setBody(建造男人的身体);}Overridepublic void buildFoot() {person.setFoot(建造男人的脚);}Overridepublic Person buildPerson() {return person;} }package com.builder;// WomenBuilder public class WomenBuilder extends PersonBuilder {public WomenBuilder() {person new Women();}Overridepublic void buildHead() {person.setHead(建造女人的头);}Overridepublic void buildBody() {person.setBody(建造女人的身体);}Overridepublic void buildFoot() {person.setFoot(建造女人的脚);}Overridepublic Person buildPerson() {return person;}}package com.builder;public class Test {public static void main(String[] args) {PersonDirector pd new PersonDirector();Person person null;person pd.constructPerson(new ManBuilder());System.out.println(person.getBody());System.out.println(person.getFoot());System.out.println(person.getHead());person pd.constructPerson(new WomenBuilder());System.out.println(person.getBody());System.out.println(person.getFoot());System.out.println(person.getHead());} }# 输出 建造男人的身体 建造男人的脚 建造男人的头 建造女人的身体 建造女人的脚 建造女人的头
http://www.hkea.cn/news/14295575/

相关文章:

  • 个人备案网站做淘宝客可以注册工商企业
  • 网站的建设与板块网站制作_做网站_耐思智慧
  • 品牌网站建设咨询怎么才能在百度上打广告
  • 建网站需要买些什么比较容易做的网站
  • 延安网站建设电话临沂做网站找哪家好
  • 网站内容更新外包网址没封的来一个
  • 网站首页包含的内容怎么做俄罗斯国家馆电商平台
  • 淘宝做短视频网站网站建设软件kan
  • 17. 整个网站建设中的关键是做网站很烧钱
  • 预售网站开发wordpress单页模板
  • 网站后台显示连接已重置专业做毕业设计网站设计
  • 正规网站建设商家从网站下载壁纸做海报涉及
  • 怎么提高自己网站的知名度电商零基础从哪儿开始学
  • 推广网站挣钱自适应网站制作
  • 成都移动端网站建设保定网站制作排名需要多少钱
  • 网站怎么增加页面收录个人网站备案名字重要吗
  • 宝坻建设路小学网站免费网站开发公司
  • 你对网站第一印象关键词优化师
  • 广州网站制作开发公司哪家好百度推广一年要多少钱
  • 虚拟主机可以做视频视频网站吗库存管理软件永久免费版
  • 建网站的论坛wordpress div属性
  • 有没有专门做蛋糕的网站装修案例的app
  • 购卡链接网站怎么做网站网页建设实训心得
  • 做废品推广哪个网站好电子工程网络信息技术专业
  • 世界军事新闻最新消息seo技术学院
  • 网站建设的注意事项哪些网页游戏好玩
  • 外贸人常用网站建设网站规模与类别
  • 请问有没有做网站网站建设与管理ppt模板下载
  • 网站建设具体流程图珠海模板网站建设
  • 有人从搜索引擎找网站建设吗wordpress小程序教程