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

企商百度网站建设视频互联网推广选择隐迅推

企商百度网站建设,视频互联网推广选择隐迅推,如何推销网站建设,搭建网站的空间哪里买什么是工厂模式 工厂方法模式定义了一个创建对象的接口#xff0c;但由子类来决定要实例化那个类。工厂方法让类把实例化推迟到了子类。 为什么要有工厂模式 书中以pizza店制作pizza为例子#xff0c;假设不用工厂模式#xff0c;在制作pizza阶段我们需要这样去实例化类但由子类来决定要实例化那个类。工厂方法让类把实例化推迟到了子类。 为什么要有工厂模式 书中以pizza店制作pizza为例子假设不用工厂模式在制作pizza阶段我们需要这样去实例化类 Pizza orderPizza(String type) {Pizza pizza;// 基于pizza的类型实例化具体的类这里的每个pizza都需要实现Pizza接口if (type.equals(cheess)) {pizza new CheesePizza();} else if (type.equals(greek)) {pizza new GreekPizza();}// pizza的前期准备pizza.prepare();pizza.bake();return pizza; }上述代码不符合开闭原则一旦pizza店改变pizza的供应则需要修改上述代码 简单工厂模式 简单工厂模式并不是一种设计模式而是一种编程习惯定义一个工厂类这个类封装所有披萨的对象创建pizza店客户端中不会进行实例化 代码如下 // 简单工厂代码 public Pizza SimplePizzaFactory {public Pizza createPizza(String type) {Pizza pizza null;if (type.equals(cheess)) {pizza new CheesePizza();} else if (type.equals(greek)) {pizza new GreekPizza();}} }// pizza店客户端代码 public class PizzaStore {SimplePizzaFactory factory;public PizzaStore(SimplePizzaFactory factory) {this.factory factory;}public Pizza orderPizza(String type) {Pizza pizza;pizza factory.createPizza(type);// pizza的前期准备pizza.prepare();pizza.bake();return pizza;} }简单工厂模式的类图 简单工厂模式的优点 将变化的部分抽离出来独立形成工厂避免在客户端直接创建 简单工厂模式的缺点 简单工厂只是提供了封装对象创建的一种方式但没有提供工厂方法的弹性因为它没有办法改变正在创建的产品。 工厂模式 如果pizza店引入了加盟商加盟商对于pizza需要有一些自己的定制化需求而上面的简单工厂模式则不符合这种需求需要引入工厂模式。 具体代码 1、定义pizza店接口 public abstract class PizzaStore {public Pizza orderPizza(String type) {Pizza pizza;pizza createPizza(type);pizza.prepare();pizza.bake();pizza.cut();pizza.box();return pizza;}protected abstract Pizza createPizza(String type); // 交给子类进行实例化 } 2、 抽象pizza的制作流程 public abstract class Pizza {String name;String dough;void prepare() {System.out.println(prepare finish);};void bake() {System.out.println(bake finish);};void cut() {System.out.println(cut finish);};void box() {System.out.println(box finish);};public String getName() {return name;}; } 3、定义加盟商的定制化需求 public class NYPizzaStore extends PizzaStore{Overridepublic Pizza createPizza(String item) {if (item.equals(cheese)) {return new NYStyleCheesePizza();}else return null;} }4、定义加盟商所使用的pizza材料 public class NYStyleCheesePizza extends Pizza{public NYStyleCheesePizza() {String name NY Style pizza;String dough thin crust dough;String sauce Marinara Sauce;} }5、main函数执行 public class Main {public static void main(String[] args) {PizzaStore nyStore new NYPizzaStore();Pizza pizza nyStore.orderPizza(cheese);}}执行结果 prepare finish bake finish cut finish box finish 工厂模式的类图 工厂模式中引入的设计原则 依赖倒置原则依赖抽象而不应该依赖具体类 遵循依赖倒置设计原则的指南 变量不应该持有到具体类的引用类不应该派生自具体类方法不应该覆盖任何基类的已实现方法 (以上指南并不是铁律要看具体的场景来遵守) 抽象工厂模式 抽象工厂模式提供一个接口来创建相关或依赖对象的家族而并不需要指定具体的类 比较工厂方法与抽象工厂方法 工厂方法 抽象工厂方法 区别 工厂方法中只会提供一个抽象接口接口的实现交给各个工厂去做抽象类只会知道是制作一个pizza。抽象工厂是把工厂方法中的接口给拆开了提供抽象接口的组合。会感知到制作pizza的抽象信息。抽象方法中对于每一个抽象接口的实现利用了工厂方法的思路。
http://www.zqtcl.cn/news/998340/

相关文章:

  • 校园网站html模板南昌网站建设优化
  • 网站的建立目的来宾网站优化
  • 建设国家游戏网站网站建设规范方案
  • 做网站价位wordpress tag 列表
  • 网站建设 李奥贝纳百度软文推广公司
  • 网站建设流程平台企业微信开发者文档
  • 唐山建设网站的网站青海网站建设企业
  • 北京企业建站系统模板网站建设公司专业网站科技开发
  • 工商注册在哪个网站手机浏览器网站开发
  • 建设电影网站的目的各个国家的google网站
  • centos 网站搭建中国互联网协会调解中心
  • 手机端视频网站模板下载做单页网站需要做什么的
  • 太原网站建设外包中国做乱的小说网站
  • 青海做网站哪家好旅游网站的功能及建设
  • 百度网站优化工具汉川网页设计
  • 网站标签优化怎么做可以看图片的地图什么软件
  • 品牌网站建设9小蝌蚪9wordpress会务网站模版
  • 免费推广网站入口202网页与网站建设
  • 武夷山市网站建设网站标签制作
  • 广州网站定制开发方案河南省新闻发布会直播
  • 普陀网站建设哪家便宜网站建设辶金手指排名十五
  • 网站怎么做百度百科租房网站开发视频教程
  • 动态做网站做自己的网站不是免费的
  • 小学校园门户网站建设方案宁波seo软件
  • 想自己做网站做推广从哪些方面进行网站建设
  • 北京南站在哪个区哪个街道html表白简单代码
  • 海口网站建设流程郑州三牛网站建设
  • 谁有国外hs网站沈阳关键字优化公司
  • wordpress双站企业品牌类网站
  • 网站架构软件做淘客app要网站吗