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

网站数据分析表格武威做网站的公司

网站数据分析表格,武威做网站的公司,建立微信公众号的流程,江西建站哪家专业1、简介 1.1、简介 抽象工厂模式为创建一组对象提供了一种解决方案。与工厂方法模式相比,抽象工厂模式中的具体工厂不只是创建一种产品,它负责创建一族产品 1.2、定义 抽象工厂模式(Abstract Factory Pattern):提供…

1、简介

1.1、简介

抽象工厂模式为创建一组对象提供了一种解决方案。与工厂方法模式相比,抽象工厂模式中的具体工厂不只是创建一种产品,它负责创建一族产品

1.2、定义

抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,它是一种对象创建型模式。

2、示例

2.1、解析

在抽象工厂模式中,每个具体工厂都提供了多个工厂方法用于产生多种不同类型的产品,这些产品构成了一个产品族。抽象工厂模式结构如下图所示。
在这里插入图片描述
在抽象工厂模式结构图中包含以下4个角色:
(1)AbstractFactory(抽象工厂):它声明了一组用于创建一族产品的方法,每个方法对应一种产品。
(2)ConcreteFactory(具体工厂):它实现了在抽象工厂中声明的创建产品的方法,生成一组具体产品,这些产品构成了一个产品族,每种产品都位于某个产品等级结构中。
(3)AbstractProduct(抽象产品):它为每种产品声明接口,在抽象产品中声明了产品所具有的业务方法。
(4)ConcreteProduct(具体产品):它定义具体工厂生产的具体产品对象,实现在抽象产品接口中声明的业务方法。

2.2、代码示例

在抽象工厂中声明了多个工厂方法,用于创建不同类型的产品,抽象工厂可以是接口,也可以是抽象类或者具体类,其典型代码如下:

interface AbstractFactory{// 工厂方法一public AbstractProductA createProductA(); // 工厂方法二public AbstractProductA createProductA(); ...
}

具体工厂实现了抽象工厂,每个具体的工厂方法可以返回一个特定的产品对象,而同一个具体工厂所创建的产品对象构成了一个产品族。对于每一个具体工厂类,其典型代码如下:

class ConcreteFactoryOne implements AbstractFactory{// 工厂方法一public AbstractProductA createProductA() {return new ConcreteProductA1();}// 工厂方法二public AbstractProductA createProductA() {return new ConcreteProductB1();}...
}

与工厂方法模式一样,抽象工厂模式也可为每一种产品提供一组重载的工厂方法,以不同的方式创建产品对象。

3、抽象工厂模式总结

抽象工厂模式是工厂方法模式的进一步延伸,由于它提供了功能更为强大的工厂类并且具备较好的可扩展性,在软件开发中得以广泛应用,尤其是在一些框架和API类库的设计中。例如,在Java语言的AWT(抽象窗口工具包)中就使用了抽象工厂模式,用来实现在不同的操作系统中,应用程序呈现与所在操作系统一致的外观界面。

3.1、优点

(1)抽象工厂模式隔离了具体类的生成,使得客户并不需要知道什么被创建。由于这种隔离,更换一个具体工厂就变得相对容易,所有的具体工厂都实现了在抽象工厂中声明的那些公共接口,因此只需改变具体工厂的实例,就可以在某种程度上改变整个软件系统的行为。
(2)当一个产品族中的多个对象被设计成一起工作时,它能够保证客户端始终只使用同一个产品族中的对象。
(3)增加新的产品族很方便,无须修改已有系统,符合开闭原则。

3.2、缺点

抽象工厂模式的主要缺点是:增加新的产品等级结构麻烦,需要对原有系统进行较大的修改,甚至需要修改抽象层代码,这显然会带来较大的不便,违背了开闭原则。

3.3、适用场景

(1)一个系统不应当依赖于产品类实例如何被创建、组合和表达的细节,这对于所有类型的工厂模式都是很重要的,用户无须关心对象的创建过程,将对象的创建和使用解耦。
(2)系统中有多于一个的产品族,而每次只使用其中某一个产品族。可以通过配置文件等方式来使得用户可以动态改变产品族,也可以很方便地增加新的产品族。
(3)属于同一个产品族的产品将在一起使用,这一约束必须在系统的设计中体现出来。同一个产品族中的产品可以是没有任何关系的对象,但是它们都具有一些共同的约束。例如同一操作系统下的按钮和文本框,按钮与文本框之间没有直接关系,但它们都是属于某一操作系统的,此时具有一个共同的约束条件:操作系统的类型。
(4)产品等级结构稳定,设计完成之后,不会向系统中增加新的产品等级结构或者删除已有的产品等级结构。

http://www.yayakq.cn/news/732650/

相关文章:

  • 做网站有什么框架建站教学视频
  • 网站建设网站维护网站外包网络营销师有前途吗
  • 网站框架是什么wordpress默认字体颜色
  • 网站 哪些服务器网站建设开发语
  • 网站托管套餐浙江省大成建设集团有限公司网站
  • 自学制作网站难不难常州建设网站公司网站
  • 帝国cms怎么做电影网站企业级问答网站开发
  • 最大的高仿手表网站wordpress 翻页插件
  • 旅游网站开发结束语网页界面设计要中重点掌握
  • 电脑手机网站制作网站排名优化原理
  • 荆州市网站建设中国建设银行网站首页企业
  • 个人网站建设心得杭州培训网站建设
  • 网站建设尺寸像素是多少钱国家企业信用公示信息查询平台
  • 个人制作网站动物大联盟微信小程序入口
  • dw做网站字体做多大重庆市建设工程交易中心网站
  • 网站建设08网站开发用什么语言最好
  • 找个可以直接观看的网站高清做视频在线观看网站
  • 如何快速新建一个网站线上拓客100种方法
  • 中国企业网站建设案例互联网网站建设 选择题
  • php网站建设的几个流程汉邦未来网站建设
  • 个人网站数据库怎么做自动设计logo的软件
  • 网站建设方式可行性分析杭州网站建设代理商
  • 北碚网站建设公司开网页死机
  • 建个网站多少钱广西模板厂哪家价格低
  • 网站的服务器在哪里可以做ppt的网站有哪些
  • 团购网站建设费用学习建设网站书籍
  • discuz论坛门户网站模板新网域名续费
  • 哪有可以专门做外包项目的网站长沙市云推网络信息有限公司
  • 网站模块下载网络营销外包案例
  • 如何用书签 做网站接口手机网站用什么软件开发