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

华为网站建设官网企业服务平台上线

华为网站建设官网,企业服务平台上线,wordpress博客导航开源主题,泰国网站建设分类#xff1a;简单工厂模式#xff08;静态工厂模式#xff09;#xff0c;工厂方法模式#xff0c;抽象工厂模式。 这种设计模式也是 Java 开发中最常见的一种模式#xff0c;它的主要意图是定义一个创建对象的接口#xff0c;让其子类自己决定实例化哪一个工厂类简单工厂模式静态工厂模式工厂方法模式抽象工厂模式。 这种设计模式也是 Java 开发中最常见的一种模式它的主要意图是定义一个创建对象的接口让其子类自己决定实例化哪一个工厂类工厂模式使其创建过程延迟到子类进行。 简单说就是为了提供代码结构的扩展性屏蔽每一个功能类中的具体实现逻辑。让外部可以更加简单的只是知道调用即可同时这也是去掉众多ifelse的方式。当然这可能也有一些缺点比如需要实现的类非常多如何去维护怎样减低开发成本。但这些问题都可以在后续的设计模式结合使用中逐步降低。 要使用工厂模式的最本质的参考标准 封装变化创建逻辑有可能变化封装成工厂类之后创建逻辑的变更对调用者透明。 代码复用创建代码抽离到独立的工厂类之后可以复用。 隔离复杂性封装复杂的创建逻辑调用者无需了解如何创建对象。 控制复杂度将创建代码抽离出来让原本的函数或类职责更单一代码更简洁。 简单工厂模式 简单工厂模式包含如下三种角色 抽象产品定义了产品的规范描述了产品的主要特性和功能。 具体产品实现或者继承抽象产品的子类。 具体工厂提供了创建产品的方法使用者通过该方法来获取产品。 核心代码 /** * 创建一个抽象类抽象子类的共有方法 * 创建子类实现父类的抽象方法 * 在工厂方法中根据类型创建不同的具体对象 **/ public class SimpleCoffeeFactory {// 根据type判断类型实例化并返回对应对象public Coffee createCoffee(String type) {Coffee coffee null;if(americano.equals(type)) {coffee new AmericanoCoffee();} else if(latte.equals(type)) {coffee new LatteCoffee();}return coffee;} } 工厂处理创建对象的细节一旦有了工厂后期如果需要对象直接从工厂中获取即可。这样也就解除了和实现类的耦合但同时又产生了新的耦合。后期如果再添加新的类就必须修改工厂类的代码违反了开闭原则。 也有一部分人将工厂类中的创建对象的功能定义为静态的这个就是静态工厂模式。 工厂方法模式 针对简单工厂模式的缺点使用工厂方法模式就可以完美的解决完全遵循开闭原则。 工厂方法模式FACTORY METHOD是一种常用的类创建型设计模式,此模式的核心精神是封装类中变化的部分提取其中个性化善变的部分为独立类通过依赖注入以达到解耦、复用和方便后期维护拓展的目的。它的核心结构有四个角色分别是抽象工厂、具体工厂、抽象产品、具体产品。 四个角色 抽象工厂Abstract Factory提供了创建产品的接口调用者通过它访问具体工厂的工厂方法来创建产品。 具体工厂ConcreteFactory主要是实现抽象工厂中的抽象方法完成具体产品的创建。 抽象产品Product定义了产品的规范描述了产品的主要特性和功能。 具体产品ConcreteProduct实现了抽象产品角色所定义的接口由具体工厂来创建它同具体工厂之间一一对应。 核心代码 /** * 抽象工厂 **/ public interface CoffeeFactory {Coffee createCoffee(); }/** * 具体工厂 * * 抽象产品为coffee具体产品为LatteCoffee和AmericanCoffee * 这种工厂模式可以通过不同的具体工厂创建出不同的具体产品 **/ public class LatteCoffeeFactory implements CoffeeFactory {public Coffee createCoffee() {return new LatteCoffee();} }public class AmericanCoffeeFactory implements CoffeeFactory {public Coffee createCoffee() {return new AmericanCoffee();} } 从以上代码可以看到要增加产品类时不需要修改工厂类的代码了这样就解决了简单工厂模式的缺点但要相应地增加工厂类。 工厂方法模式是简单工厂模式的进一步抽象。由于使用了多态性工厂方法模式保持了简单工厂模式的优点而且克服了它的缺点。 优点 在获取对象时只需要知道具体工厂的名称就可以得到对应的对象无须知道具体创建过程在系统增加新的类时只需要添加对应的具体工厂类无须对原工厂进行任何修改满足开闭原则 缺点 每增加一个类就要增加一个对应的具体工厂类增加了系统的复杂度。 抽象工厂模式 抽象工厂模式Abstract Factory Pattern隶属于设计模式中的创建型模式用于产品族的构建。抽象工厂是所有形态的工厂模式中最为抽象和最具一般性的一种形态。抽象工厂是指当有多个抽象角色时使用的一种工厂模式。抽象工厂模式可以向客户端提供一个接口使客户端在不必指定产品的具体情况下创建多个产品族中的产品对象。 工厂模式中的每一个形态都是针对一定问题的解决方案工厂方法针对的是多个产品系列结构而抽象工厂模式针对的是多个产品族结构一个产品族内有多个产品系列。 抽象工厂模式的主要角色如下 抽象工厂Abstract Factory提供了创建产品的接口它包含多个创建产品的方法可以创建多个不同等级的产品。 具体工厂Concrete Factory主要是实现抽象工厂中的多个抽象方法完成具体产品的创建。 抽象产品Product定义了产品的规范描述了产品的主要特性和功能抽象工厂模式有多个抽象产品。 具体产品ConcreteProduct实现了抽象产品角色所定义的接口由具体工厂来创建它 同具体工厂之间是多对一的关系。 代码展示 /** * 抽象工厂 **/ public interface DessertFactory {Coffee createCoffee();Dessert createDessert(); }/** * 具体工厂 **/ public class AmericanDessertFactory implements DessertFactory {public Coffee createCoffee() {return new AmericanCoffee();}public Dessert createDessert() {return new MatchaMousse();} }public class ItalyDessertFactory implements DessertFactory {public Coffee createCoffee() {return new LatteCoffee();}public Dessert createDessert() {return new Tiramisu();} } 如果要加同一个产品族的话只需要再加一个对应的工厂类即可不需要修改其他的类。 优点 当一个产品族中的多个对象被设计成一起工作时它能保证客户端始终只使用同一个产品族中的对象。 缺点 当产品族中需要增加一个新的产品时所有的工厂类都需要进行修改。
http://www.hkea.cn/news/14378907/

相关文章:

  • 自动提卡的网站怎么做的永久免费crm管理系统
  • 网站建设需要服务器支持 吗响应式网站建设特征
  • 如何去掉Wordpress访问网站东莞做网站要多少钱
  • 临沂建设网站公司wordpress安卓显示
  • 安庆市网站建设公司如何做产品网站推广
  • 网站优化反馈机制 seo沈阳做招聘网站
  • 石家庄网站推广报价网页设计基础考试题库含答案
  • 漳州市长泰县建设局网站做外贸主要是哪些网站
  • 销售部网站建设费广告设计与制作需要学什么
  • 做网站视频一般上传到哪里电商视觉设计是干什么的
  • 网站建设是设邯郸注册公司流程和费用
  • 制作网站的公司有哪些网站设计师网站
  • 黑龙江做网站公司怎样在凡科免费做网站
  • delphi 实现网站开发能源科技网站建设
  • 正能量视频不打马赛克东营做网站优化公司
  • 正规的网站建设专业公司免费个人简历word可编辑
  • 搭建发卡网站要多少钱wordpress添加产品
  • 被百度收录的网站有哪些百度识图网站
  • 好的建设网站阿里巴巴做外贸流程
  • 申请网站官网上海网站的优化公司
  • 交友免费网站建设微信怎么制作自己的小程序
  • wordpress如何不显示评论seo外包团队
  • 手机怎样做网站图解贵阳建设工程信息网站
  • 有哪些做婚品的网站自适应网站建设
  • 哪个网站可以免费做音乐相册重庆制作网站
  • 大连做网站优化青岛个人建站模板
  • 北京网站备案更换主体网站建设三方协议
  • 企业做网站分一般为哪几种类型东莞注册有限公司流程及费用
  • 网站改版具体建议微奇生活WordPress主题
  • 动态速写网站淘宝网站网页图片怎么做