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

丰城住房和城乡建设部网站wordpress get_category_root_id

丰城住房和城乡建设部网站,wordpress get_category_root_id,手机网站和微信网站有哪些,站酷设计网站官网入口下载目录 1. 简单工厂模式 2. 工厂方法模式 1. 简单工厂模式 简单工厂模式(Simple Factory Patterm)又称为静态工厂方法模式(Static Factory Model)#xff0c;它属于类创建型模式。在简单工厂模式中#xff0c;可以根据参数的不同返回不同类的实例。简单工厂模式专门定义了一…目录 1. 简单工厂模式 2. 工厂方法模式 1. 简单工厂模式 简单工厂模式(Simple Factory Patterm)又称为静态工厂方法模式(Static Factory Model)它属于类创建型模式。在简单工厂模式中可以根据参数的不同返回不同类的实例。简单工厂模式专门定义了一个类来负责创建其他类的实例被创建的实例通常都有共同的父类。 实现 首先定义一个抽象类 Product 和继承 Product 的实体类(ProductA/productB)。实体类要实现抽象类Product 里的抽象方法 method()在各自的 method() 方法里实现自己的功能。下一步定义工厂类 Factory。 工厂类里有一个 createProduct() 方法根据传入的参数来判断返回的对象类型。 步骤1创建抽象类 Product abstract public class Product{public abstract void print(); } 步骤2创建继承 Product 的实体类 public class ProductA extends Product{overridepublic void print(){System.out.println(产品A);.....} } public class ProductB extends Product{overridepublic void print(){System.out.println(产品B);......} } 步骤3创建一个工厂返回特定的产品对象 public class ProductFactory{// 创建具体产品实例public static Product createProduct(String type){if(type null){return null;}if(type.equals(A){return new ProductA();} else{return new ProductB();}} } 步骤4使用该工厂通过传递类型信息来获取实体类的对象 public class SimpleFactoryPattermDemo{public static void main(String[] args){// createProduct(A) 里传入参数A, 获取到 ProductA 对象Product productA ProductFactory.createProduct(A);productA.print();// createProduct(B) 里传入参数A, 获取到 ProductB 对象Product productB ProductFactory.createProduct(B):productB.print();} } 优点对象的创建和使用是分离的。客户端无需知道创建对象的细节也无需直接创建产品对象。 缺点 系统扩展困难违背了开闭原则。当我们新增一个 ProductC时在步骤3中就会修改 createProduct 的逻辑新增一个 if 语句来满足 ProductC 对象的创建和返回。这一点就违背了开闭原则的修改关闭。 2. 工厂方法模式 由于简单工厂模式不符合开闭原则因此引入了工厂方法模式也称为工厂模式它完全符合开闭原则。 工厂方法模式是 Java 中最常用的设计模式之一。这种类型的设计模式属于类创建型模式它提供了一种创建对象的最佳方式。在工厂模式中我们在创建对象时不会对客户端暴露创建逻辑并且是通过使用一个共同的接口来指向新创建的对象。 实现 步骤1创建一个Coffee 接口 public interface Coffee{void createCoffee(); } 步骤2创建实现 Coffee 接口的实体类 public class AmericanCoffee implements Coffee{overridepublic void createCoffee(){System.out.println(create AmericanCoffee);....} } public class LatteCoffee implements Coffee{overridepublic void createCoffee(){System.out.println(create LatteCoffee);....} } 步骤3创建一个 Factory 接口 public interface CoffeeFactory{Coffee createCoffeeInstance(); } 步骤4创建实现 CoffeeFactory 接口的实体类分别对应步骤2中 的 Coffee 实体类 public class AmericanCoffeeFactory implements CoffeeFactory{overridepublic Coffee createCoffeeInstance(){System.out.println(return a AmericanCoffees instance);return new AmericanCoffee();} } public class LatteCoffeeFactory implements CoffeeFactory{overridepublic Coffee createCoffeeInstance(){System.out.println(return a LatteCoffees instance);return new LatteCoffee();} } 步骤5使用 CoffeeFactory 来获取 Coffee 实例 public class FactoryPatternDemo{public static void main(Stirng[] args){// TODO 写法1// 通过配置文件的方式来判断具体是哪一种 Coffee, 然后使用对应的CoffeeFactoryCoffeeFactory coffeeFactory new CoffeeFactory();Coffee coffee coffeeFactory.createCoffeeInstance();coffee.createCoffee();} } 当我们需要新增加一个 BlackCoffee 时只需要新建类 BlackCoffee implements Coffee 和 BlackCoffeeFactory implements CoffeeFactory 就 ok了满足了开闭原则中的扩展开发修改关闭。 优点 用户只需要知道具体工厂的名称就可得到所要的产品无须知道产品的具体创建过程 在系统增加新的产品时只需要添加具体产品类和对应的具体工厂类无须对原工厂进行任何修改满足开闭原则 注意复杂对象适合使用工厂模式而简单对象特别是只需要通过 new 就可以完成创建的对象无需使用工厂模式。如果使用工厂模式就需要引入一个工厂类会增加系统的复杂度。
http://www.hkea.cn/news/14507495/

相关文章:

  • 电商开发网站公司上优化
  • 源创派网站建设宁波网站建设模板制作
  • 怎么看别人网站是什么语言做的谷歌浏览器网页版在线
  • 青海 网站开发 图灵wordpress占资源
  • 北京未来广告公司安卓系统优化大师
  • 让php运行于wordpress网站建设优化石家庄
  • 网站建设总费用网站怎么做必须交钱吗
  • 广州微信网站建设效果北京网站开发外包公司
  • 免费招聘网站都有哪些济南seo整站优化招商电话
  • 网站案例 网站建设系统与网站的区别
  • 网站怎么做能赚钱博物馆网站建设
  • 建网站卖虚拟资源需要怎么做东莞企业网站哪家好
  • 做网站联系电话京东网站建设现状
  • 吉林省建设厅监理协会网站哪个网站专做二手相机
  • 不付费免费网站新农宝网站建设方案
  • 服务器做网站哪个系统好河北住房和城乡建设厅网站6
  • 大眼睛网站建设目前有哪些网络营销方式
  • 用vue做的网站怎么实现响应式企业网站设计收费
  • 山西门户网站建设网站开发常用语言
  • 网站与微信石家庄网络关键词推广
  • 可以看任何网站的浏览器下载建信网个人证书查询
  • 网站制作怎么报价长春网站推广排名
  • 成都成仁路网站建设福田区南山区龙岗区
  • 网站建设流程wordpress无法改成中文
  • 做跨境电商网站有哪些贵州网络科技有限公司
  • 找项目去哪个网站淘宝网站建设需求分析
  • 5m带宽做视频网站企业宣传片影视制作
  • 做视频网站都需要什么互联网招聘网站排行
  • 最炫表白网站html5源码WordPress如何恢复最初
  • 网站开发分类列表广东seo推广贵不贵