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

网站建设需求多少钱大概潮州网络推广公司

网站建设需求多少钱大概,潮州网络推广公司,wordpress直接发送密码,商城网站建设高端抽象工厂 一、解决的问题 抽象工厂模式主要解决了在具有多个产品族的情况下#xff0c;如何统一管理创建相关产品对象的问题。 当系统需要创建一系列相互关联或相互依赖的对象#xff0c;并且这些对象可以形成多个不同的产品族时#xff0c;如果直接由客户端去分别创建这…抽象工厂 一、解决的问题 抽象工厂模式主要解决了在具有多个产品族的情况下如何统一管理创建相关产品对象的问题。 当系统需要创建一系列相互关联或相互依赖的对象并且这些对象可以形成多个不同的产品族时如果直接由客户端去分别创建这些对象会导致客户端与具体的产品类紧密耦合并且当需要切换产品族时修改的成本会很高。 例如一个图形用户界面GUI应用可能需要为不同的操作系统如 Windows、Mac、Linux创建各自风格的按钮、文本框等组件。如果没有抽象工厂模式客户端代码需要了解每个具体操作系统的组件实现细节并且在需要切换操作系统支持时大量的代码都需要修改。 二、好处 解耦了客户端与具体产品类 客户端只需要与抽象工厂和抽象产品交互无需关心具体产品对象的创建细节和具体类降低了客户端与具体产品类之间的耦合度。 便于产品族切换 通过切换使用不同的具体工厂可以轻松地在不同的产品族之间进行切换而无需修改客户端的调用代码。 统一的产品创建逻辑 将创建相关产品对象的逻辑集中在工厂类中便于对产品的创建进行统一管理和维护。 三、坏处 扩展新的产品族困难 当需要增加一个新的产品族时需要修改抽象工厂接口以及所有的具体工厂实现类违背了“开闭原则”对扩展开放对修改关闭可能会影响到已有的代码。 代码结构复杂 抽象工厂模式增加了系统中类的数量和层次结构使得代码结构相对复杂对于简单的应用场景可能会导致过度设计。 文章目录 抽象工厂一、抽象工厂模式介绍二、Java 代码示例 一、抽象工厂模式介绍 抽象工厂模式Abstract Factory Pattern属于创建型设计模式。它提供了一个创建一系列相关或相互依赖对象的接口而无需指定它们具体的类。 抽象工厂模式的主要优点是易于交换产品系列由于具体工厂类在一个应用中只需要在初始化的时候出现一次这使得改变一个应用的具体工厂变得非常容易它让具体的创建实例过程与客户端分离客户端是通过抽象工厂和抽象产品来操纵实例产品的具体类名也被具体工厂的实现分离不会出现在客户代码中。 抽象工厂模式的缺点是如果要增加新的产品系列需要修改抽象工厂和所有的具体工厂类这违背了“开闭原则”。 二、Java 代码示例 以下是一个使用 Java 实现的抽象工厂模式的示例假设我们有两个产品系列Windows 系列的窗口组件按钮和文本框和 Mac 系列的窗口组件 // 按钮接口 interface Button {void paint(); }// Windows 风格的按钮 class WindowsButton implements Button {Overridepublic void paint() {System.out.println(Painting Windows Button);} }// Mac 风格的按钮 class MacButton implements Button {Overridepublic void paint() {System.out.println(Painting Mac Button);} }// 文本框接口 interface TextBox {void show(); }// Windows 风格的文本框 class WindowsTextBox implements TextBox {Overridepublic void show() {System.out.println(Showing Windows TextBox);} }// Mac 风格的文本框 class MacTextBox implements TextBox {Overridepublic void show() {System.out.println(Showing Mac TextBox);} }// 抽象工厂接口 interface GUIFactory {Button createButton();TextBox createTextBox(); }// Windows 风格的工厂用于创建 Windows 风格的组件 class WindowsFactory implements GUIFactory {Overridepublic Button createButton() {return new WindowsButton();}Overridepublic TextBox createTextBox() {return new WindowsTextBox();} }// Mac 风格的工厂用于创建 Mac 风格的组件 class MacFactory implements GUIFactory {Overridepublic Button createButton() {return new MacButton();}Overridepublic TextBox createTextBox() {return new MacTextBox();} }// 客户端代码 public class AbstractFactoryPatternDemo {public static void main(String[] args) {GUIFactory factory;// 创建 Windows 风格的工厂factory new WindowsFactory();Button windowsButton factory.createButton();TextBox windowsTextBox factory.createTextBox();windowsButton.paint();windowsTextBox.show();// 创建 Mac 风格的工厂factory new MacFactory();Button macButton factory.createButton();TextBox macTextBox factory.createTextBox();macButton.paint();macTextBox.show();} }
http://www.w-s-a.com/news/836446/

相关文章:

  • 网站pc端网址和手机端网址建设牡丹江 网站建设
  • 苏州新区城乡建设网站人才招聘网站开发
  • 一般网站是怎么做的威远移动网站建设
  • 赣州网站开发公司怎么才能设计好一个网站
  • 个人网站建设分几个步走培训网站开发哪个好
  • 智能网站价格河北城乡建设网站
  • 做动画在线观看网站网上花店 网站源代码
  • 做网站项目体会商业信息
  • 深圳的设计网站谷歌浏览器下载手机版官网
  • 苏州网站建设都找全网天下外贸响应式网站设计
  • 揭阳专业做网站网站迁移教材
  • 手机上怎么上传网站吗工程信息网站建设
  • 用手机建网站微信手机网站流程
  • 专注软件优化分享的网站梧州网页设计
  • 长春火车站和高铁站是一个站吗公司名称注册查询系统
  • 便利的集团网站建设网页的依托网站
  • 茶叶网站建设题库制作助手app
  • 网站建设栏目层级北京网站搭建公司电话
  • 网站开发运营经理打开百度竞价页面是网站是什么
  • 国内最专业的设计网站建设现在用什么语言做网站
  • 湖南网站开发 岚鸿象山县建设工程招投标网站
  • 长沙免费网站排名wordpress 教学
  • 专门做app的网站html代码是什么
  • 临沂网站制作建设欧米茄表官网
  • 北京模板网站开发全包网站建设的第三方平台
  • 在凡科做的网站怎么推广网页模板下载 免费 html
  • 有关网站建设的标题仿亿欧网wordpress
  • 网站建设公司销售招聘常用的搜索引擎有哪些?
  • wordpress中.htaccess新上线的网站怎么做优化
  • 家教网站怎么做网站建设品牌推荐