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

专题页网站优设网app下载

专题页网站,优设网app下载,南京网站建设公司哪家好,手机网站前端设计目录 抽象工厂模式#xff08;Abstract Factory Pattern#xff09; 抽象工厂模式的核心角色 优缺点 代码实现 抽象工厂模式#xff08;Abstract Factory Pattern#xff09; 抽象工厂模式#xff08;Abstract Factory Pattern#xff09;是围绕一个超级工厂创建其他…目录 抽象工厂模式Abstract Factory Pattern 抽象工厂模式的核心角色 优缺点 代码实现 抽象工厂模式Abstract Factory Pattern 抽象工厂模式Abstract Factory Pattern是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式它提供了一种创建对象的最佳方式。在抽象工厂模式中接口是负责创建一个相关对象的工厂不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。抽象工厂模式提供了一种创建一系列相关或相互依赖对象的接口而无需指定具体实现类。通过使用抽象工厂模式可以将客户端与具体产品的创建过程解耦使得客户端可以通过工厂接口来创建一族产品。 抽象工厂模式基于工厂方法模式。两者的区别在于工厂方法模式是创建出一种产品而抽象工厂模式是创建出一类产品。这二种都属于工厂模式在设计上是相似的。 抽象工厂模式的核心角色 1、抽象工厂Abstract Factory声明了一组用于创建产品对象的方法每个方法对应一种产品类型。抽象工厂可以是接口或抽象类。 2、具体工厂Concrete Factory实现了抽象工厂接口负责创建具体产品对象的实例。 3、抽象产品Abstract Product定义了一组产品对象的共同接口或抽象类描述了产品对象的公共方法。 4、具体产品Concrete Product实现了抽象产品接口定义了具体产品的特定行为和属性。 优缺点 1优点当一个产品族中的多个对象被设计成一起工作时它能保证客户端始终只使用同一个产品族中的对象。 2缺点产品族扩展非常困难要增加一个系列的某一产品既要在抽象的 Creator 里加代码又要在具体的里面加代码 代码实现 package mainimport fmt// (抽象工厂) 能够生产tv、手机、Ipad type AbstractFactory interface {CreateTelevision() TelevisionCreateIpad() IpadCreateCellphone() Cellphone }// (抽象产品) -- Television type Television interface {Watch() }// (抽象产品) -- Ipad type Ipad interface {Play() }// (抽象产品) -- Cellphone type Cellphone interface {Callphone() }// (具体工厂) 华为工厂 type HuaweiFactory struct { }func (hf *HuaweiFactory) CreateTelevision() Television {return HuaweiTelevision{} } func (hf *HuaweiFactory) CreateIpad() Ipad {return HuaweiIpad{} } func (hf *HuaweiFactory) CreateCellphone() Cellphone {return HuaweiCellphone{} }// (具体产品)华为Television实现了Television接口 type HuaweiTelevision struct { }func (hc *HuaweiTelevision) Watch() {fmt.Println(Watch Huawei Television) }// (具体产品)华为Ipad实现了Ipad接口 type HuaweiIpad struct { }func (hc *HuaweiIpad) Play() {fmt.Println(Play Huawei Ipad) }// (具体产品)华为Cellphone实现了Cellphone接口 type HuaweiCellphone struct { }func (hc *HuaweiCellphone) Callphone() {fmt.Println(Call Huawei Cellphone) }// (具体工厂) 小米工厂 type MiFactory struct { }func (mf *MiFactory) CreateTelevision() Television {return MiTelevision{} } func (mf *MiFactory) CreateIpad() Ipad {return nil } func (mf *MiFactory) CreateCellphone() Cellphone {return MiCellphone{} }// (具体产品)小米Television实现了Television接口 type MiTelevision struct { }func (mt *MiTelevision) Watch() {fmt.Println(Watch Mi Television) }// (具体产品)小米Cellphone实现了Cellphone接口 type MiCellphone struct { }func (mc *MiCellphone) Callphone() {fmt.Println(Call Mi Cellphone) }// 超级工厂类 获取超级工厂实例 type HyperFactory struct { }func (hf *HyperFactory) CreateFactory(factoryName string) AbstractFactory {switch factoryName {case Huawei:return HuaweiFactory{}case Mi:return MiFactory{}default:return nil} }func main() {hfactoey : HyperFactory{}hwfactory : hfactoey.CreateFactory(Huawei)hwfactory.CreateTelevision().Watch()hwfactory.CreateIpad().Play()hwfactory.CreateCellphone().Callphone()mifactory : hfactoey.CreateFactory(Mi)mifactory.CreateTelevision().Watch()if mifactory.CreateIpad() nil {fmt.Println(不支持)}mifactory.CreateCellphone().Callphone() }
http://www.zqtcl.cn/news/8772/

相关文章:

  • 在合肥哪里学网站建设银川网站建设那家公司比较好
  • 中国网站推广黄页名录网站图片特效代码
  • 投资网站模板宝塔如何添加ip域名做网站
  • 30天网站建设实录视频网站运营
  • 政务网站群建设韩国有哪些做潮牌的网站
  • 做最好最全的命理网站网店美工课本
  • 专做民宿的网站网站备案公司倒闭
  • 2022年没封网站直接进入网络营销技术
  • 比较容易做的网站wordpress 一小时建站
  • 手把手教建设网站wordpress显示浏览数
  • 黄冈网站制作公司外贸网络推广专员
  • 企业网站的网址有哪些网页站点是什么意思
  • 网站建设 验收意见大气网站首页欣赏
  • 成都营销网站建设团队wordpress开启多站点模式
  • 一个空间可以做多少个网站中信建设有限责任公司 闫励
  • 成都网站改版公司wordpress注册码系统
  • 做网站一定需要主机吗wordpress 商城id连续
  • 思帽西宁网站建设网站建设丷金手指专业十五
  • 校庆专题网站建设方案成都专线运输电话
  • 青岛李沧建设局网站怎么查询网站的备案号
  • 建设商城网站制作成都网站开发制作
  • 做电影ppt模板下载网站服务器可以做自己网站用吗
  • 手机网站 滑动翻页营销网站特点
  • 自己做的网站什么时候可以赚钱营销推广的工作内容
  • 怎么在网上卖东西?无锡seo管理
  • 北京网站建设公司分形网站设计文案
  • 网站不备案怎么回事黄页网站软件下载免费app
  • 建设网站的费用入什么科目网站怎么做图片按按钮跳转
  • 这么开网站邢台网站建设厂家
  • 那个餐饮网站天津业之峰装修公司地址