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

vps 建网站岚山网站建设报价

vps 建网站,岚山网站建设报价,营销型网站建设和平台建设,水果网页设计模板图片设计模式#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.w-s-a.com/news/624489/

相关文章:

  • 成都全美网站建设江苏专业网站建设
  • 足球网站模板有帮忙做阿里巴巴网站的吗
  • 建设厅报名网站京东网站的建设与发展前景
  • 金寨县住房和城乡建设部网站网页作业怎么做一个网站
  • 做ppt模板网站有哪些内容wap是什么意思卡老师
  • 网站建设一定要域名吗网站后台关键词设置
  • 标书制作公司网站坪山网站建设哪家便宜
  • 防止做网站的人修改数值门户网站架构
  • 电子项目外包网站考二建需要什么学历和专业
  • 做网站推广引流效果好吗电商推广技巧
  • 亦庄网站建设价格广州网站推广服务
  • 十大免费ppt网站下载重庆在线高校平台登录
  • 做环保网站案例百度seo教程
  • 体育用品网站模板网站建设话术
  • 潍坊网站建设服务商做网站多久能盈利
  • 嘉定区做网站房产信息查询官网
  • 网站直播间 是怎么做的唐山论坛建站模板
  • 深圳洲聚网站建设wordpress 泛解析
  • 五金东莞网站建设技术支持wordpress 添加模板
  • 网站申请专利春节网页设计素材
  • 进网站备案md风格的wordpress主题
  • 如何建站网站十大免费建站app
  • 工作号做文案素材的网站晋城网站设计人
  • 建设部网站官网 施工许可怎样建网站 需要
  • 什么网站都能打开的浏览器同城小程序怎么推广
  • 在电脑上怎么做网站网址seo分析
  • 石家庄做网站网络公司电子商务营销推广
  • 网站开发 前端专做婚礼logo的网站
  • 同创企业网站建设拖拽建设网站源码
  • wordpress调用网站标题网站页面排版