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

增城网站建设推广上海的公司名称

增城网站建设推广,上海的公司名称,网站如何建设目录结构,上海好的网站设计公司设计模式#xff08;10#xff09;——创建型模式之抽象工厂 什么是抽象工厂#xff1f;抽象工厂的结构抽象工厂伪代码抽象工厂适合应用场景 什么是抽象工厂#xff1f; 抽象工厂#xff08;Abstract Factory#xff09;是一种创建型设计模式#xff0c;它能创建一系列… 设计模式10——创建型模式之抽象工厂 什么是抽象工厂抽象工厂的结构抽象工厂伪代码抽象工厂适合应用场景 什么是抽象工厂 抽象工厂Abstract Factory是一种创建型设计模式它能创建一系列相关的对象而无需指定其具体类。 抽象工厂的结构 抽象产品Abstract Product为构成系列产品的一组不同但相关的产品声明接口具体产品Concrete Product是抽象产品的多种不同类型实现。所有变体都必须实现响应的抽象产品抽象工厂Abastract Factory接口声明了一组创建各种抽象产品的方法具体工厂Concrete Factory实现抽象工厂的构建方法。每个具体工厂都对应特定产品变体且仅创建此种产品变体客户端Client只需要通过抽象接口调用工厂和产品对象就能与任何具体工厂/产品变体交互 抽象工厂伪代码 假如我们正在开发一款应用程序会用到按钮button和复选框checkbox要支持Windows与Mac两种操作系统。为了提高代码可复用性不想为每种操作系统维护单独的代码我们可以应用抽象工厂模式。将按钮button和复选框checkbox作为抽象产品不同的操作系统实现不同的具体产品并提供配套的具体工厂。应用程序Application作为客户端调用抽象工厂创建不同操作系统下的按钮和复选框。 // 抽象工厂接口声明了一组能返回不同抽象产品的方法。这些产品属于同一个系列 // 且在高层主题或概念上具有相关性。同系列的产品通常能相互搭配使用。系列产 // 品可有多个变体但不同变体的产品不能搭配使用。 interface GUIFactory ismethod createButton():Buttonmethod createCheckbox():Checkbox// 具体工厂可生成属于同一变体的系列产品。工厂会确保其创建的产品能相互搭配 // 使用。具体工厂方法签名会返回一个抽象产品但在方法内部则会对具体产品进 // 行实例化。 class WinFactory implements GUIFactory ismethod createButton():Button isreturn new WinButton()method createCheckbox():Checkbox isreturn new WinCheckbox()// 每个具体工厂中都会包含一个相应的产品变体。 class MacFactory implements GUIFactory ismethod createButton():Button isreturn new MacButton()method createCheckbox():Checkbox isreturn new MacCheckbox()// 系列产品中的特定产品必须有一个基础接口。所有产品变体都必须实现这个接口。 interface Button ismethod paint()// 具体产品由相应的具体工厂创建。 class WinButton implements Button ismethod paint() is// 根据 Windows 样式渲染按钮。class MacButton implements Button ismethod paint() is// 根据 macOS 样式渲染按钮// 这是另一个产品的基础接口。所有产品都可以互动但是只有相同具体变体的产 // 品之间才能够正确地进行交互。 interface Checkbox ismethod paint()class WinCheckbox implements Checkbox ismethod paint() is// 根据 Windows 样式渲染复选框。class MacCheckbox implements Checkbox ismethod paint() is// 根据 macOS 样式渲染复选框。// 客户端代码仅通过抽象类型GUIFactory、Button 和 Checkbox使用工厂 // 和产品。这让你无需修改任何工厂或产品子类就能将其传递给客户端代码。 class Application isprivate field factory: GUIFactoryprivate field button: Buttonconstructor Application(factory: GUIFactory) isthis.factory factorymethod createUI() isthis.button factory.createButton()method paint() isbutton.paint()// 程序会根据当前配置或环境设定选择工厂类型并在运行时创建工厂通常在初 // 始化阶段。 class ApplicationConfigurator ismethod main() isconfig readApplicationConfigFile()if (config.OS Windows) thenfactory new WinFactory()else if (config.OS Mac) thenfactory new MacFactory()elsethrow new Exception(错误未知的操作系统。)Application app new Application(factory)抽象工厂适合应用场景 如果代码需要与多个不同系列的相关产品交互 但是由于无法提前获取相关信息 或者出于对未来扩展性的考虑 你不希望代码基于产品的具体类进行构建 在这种情况下 你可以使用抽象工厂。 抽象工厂为你提供了一个接口 可用于创建每个系列产品的对象。 只要代码通过该接口创建对象 那么你就不会生成与应用程序已生成的产品类型不一致的产品。 如果你有一个基于一组抽象方法的类 且其主要功能因此变得不明确 那么在这种情况下可以考虑使用抽象工厂模式。 在设计良好的程序中 每个类仅负责一件事。 如果一个类与多种类型产品交互 就可以考虑将工厂方法抽取到独立的工厂类或具备完整功能的抽象工厂类中。
http://www.hkea.cn/news/14554804/

相关文章:

  • 数字网站怎么建设app制作平台推荐
  • 公司网站标题优化聊城关键词优化推广
  • 网站的用户运营值得做吗网站界面结构
  • 微信公众号h5网站开发外贸电商网站设计
  • 上海市建设教育网站论坛推广怎么做
  • 学做网站能赚多少免费网站导航建设
  • 软装设计师常用网站仿牌 镜像网站
  • 西宁城东区建设局公租房网站识图 WordPress
  • 建立网站教程互联网站建设
  • 做网站怎样做全页面asp sql做学生信息网站
  • asp网站开发pdf南京建站软件
  • 芮城网站开发wordpress单本小说站
  • 推广网站排行榜信阳建设网站
  • 学做ps的网站wordpress卸载主题
  • 网站tkd怎么做网络管理系统的组成
  • 什么是网站内链企业的vi设计都包括哪几种
  • 电脑版传奇网站福州自适应网站建设
  • 免费的wordpress能用吗百度运营优化师
  • 站酷设计网站怎样下载图片华为云网站定制
  • 如何给网站开发挂长乐市建设局网站
  • 南宁公司网站建设公司哪家好自己做简单会员管理系统
  • 上海微信网站建设公司电话wordpress首页怎么用ftp修改
  • 网站开发学校 优帮云12网站免费建站
  • 网站建设公司优惠中最近最新在线观看免费高清完整版
  • 运营一个网站一年费用h5百度百科
  • 公司做网站怎么推广做网站一个程序员够吗
  • 开办 网站建设费 科目淘宝网站推广工具
  • 长春火车站最新防疫要求潍坊模板建站定制网站
  • 国家电力安全网站两学一做做网站对象存储
  • 沈阳网站建设syfzkj建筑材料价格信息网