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

网站建设捌金手指花总二六wordpress翻页按钮颜色

网站建设捌金手指花总二六,wordpress翻页按钮颜色,二手东西怎么挂网上卖,狮山网站制作工厂设计模式 简介 工厂模式是一种创建型设计模式,用于创建产品,代替手动new,主要包括简单工厂模式、工厂方法模式、抽象工厂模式。 一、简单工厂模式 定义:通过一个工厂类根据传入的参数匹配创建的产品 结构组成&#xff1a…

工厂设计模式

简介

工厂模式是一种创建型设计模式,用于创建产品,代替手动new,主要包括简单工厂模式工厂方法模式抽象工厂模式

一、简单工厂模式

定义:通过一个工厂类根据传入的参数匹配创建的产品

结构组成

  • 工厂(Factory):负责创建具体产品
  • 抽象产品(Product):定义产品的标准
  • 具体产品(Concret Product):抽象产品的具体产品

案例

抽象产品

//	水果
public interface Fruit {String name();
}

具体产品

//	苹果
public class Apple implements Fruit{public String name() {return "Apple";}
}
//	香蕉
public class Banana implements Fruit{public String name() {return "Banana";}
}

工厂

//	水果加工厂
public class FruitFactory {public static Fruit createFruit(String name) {// 根据产品名称创建产品if ("apple".equals(name)) {return new Apple();} else if ("banana".equals(name)) {return new Banana();}return null;}
}
  • 优点:客户只需要知道参数就能拿到具体产品

  • 缺点:工厂的职责过重,新增产品时需要修改工厂源码,违反开闭原则

二、工厂方法模式

定义:定义工厂标准,存在多个工厂,一个工厂生产一种产品,遵循单一职责原则

结构组成

  • 抽象工厂(Factory):声明工厂方法,返回抽象产品
  • 具体工厂(Concret Factory):用于创建具体产品
  • 抽象产品(Product):定义产品标准
  • 具体产品(Concret Product):抽象产品的具体实现

案例

抽象产品

public interface Fruit {String name();
}

具体产品

public class Apple implements Fruit {public String name() {return "Apple";}
}
public class Banana implements Fruit {public String name() {return "Banana";}
}

抽象工厂

public interface FruitFactory {Fruit createFruit();
}

具体工厂

public class AppleFactory implements FruitFactory{public Fruit createFruit() {return new Apple();}
}
public class BananaFactory implements FruitFactory{public Fruit createFruit() {return new Banana();}
}
  • 优点:
    • 符合开闭原则,新增产品时只需要新增工厂类,无需修改现有代码
    • 客户只需通过具体工厂就能创建对应产品
  • 缺点:
    • 每新增一个产品就要新创建一个工厂类,类的数量会增加

三、抽象工厂模式

定义具体工厂生产多种抽象产品一个工厂生产出的不同产品属于一个产品族

结构组成

  • 抽象工厂:声明一系列创建产品的方法
  • 具体工厂:用于创建一系列产品的工厂
  • 抽象产品:定义产品的标准
  • 具体产品:抽象产品的具体实现

抽象工厂模式针对的是产品族,一个具体工厂可以生成多种产品,而简单工厂和工厂方法模式只针对一种抽象产品

案例

抽象产品

public interface Fruit {	//	水果String name();
}
public interface Vegetable {	//	蔬菜String name();
}

具体产品

//	具体水果
public class Apple implements Fruit {public String name() {return "Apple";}
}
public class Banana implements Fruit {public String name() {return "Banana";}
}//	具体蔬菜
public class Cabbage implements Vegetable{public String name() {return "白菜";}
}
public class Tomato implements Vegetable{public String name() { return "西红柿";}
}

抽象工厂

public interface FoodFactory {//	创建水果Fruit createFruit(String name);//	创建蔬菜Vegetable createVegetable(String name);
}

具体工厂

//	小米加工厂
public class XiaomiFactory implements FoodFactory {//	小米加工厂生产出的产品全是小米族public Fruit createFruit(String name) {if ("apple".equals(name)) {return new Apple();} else if ("banana".equals(name)) {return new Banana();}return null;}public Vegetable createVegetable(String name) {if ("cabbage".equals(name)) {return new Cabbage();} else if ("tomato".equals(name)) {return new Tomato();}return null;}
}
//	Alibaba加工厂
public class AlibabaFactory implements FoodFactory {public Fruit createFruit(String name) { // ... }public Vegetable createVegetable(String name) {// ...}
}
  • 优点:
    • 保证客户始终使用同一个产品族
    • 符合开闭原则,新增产品族时只需新增工厂类,无需修改原有代码
  • 缺点:
    • 新增抽象产品时,需要修改抽象工厂以及所有的具体工厂,违反开闭原则

文章转载自:

http://HlzVczo4.nLgLm.cn
http://o6Z1y8Xa.nLgLm.cn
http://hunBtgV7.nLgLm.cn
http://CLeSnMAJ.nLgLm.cn
http://hLaq2l6H.nLgLm.cn
http://V3vY8uIV.nLgLm.cn
http://fkAgmHtb.nLgLm.cn
http://qa7bE6Zx.nLgLm.cn
http://zrcZyLyO.nLgLm.cn
http://UYnOELFi.nLgLm.cn
http://3IVnjtke.nLgLm.cn
http://ENDZ9Oeo.nLgLm.cn
http://pgs4lWIl.nLgLm.cn
http://cXc8ROnp.nLgLm.cn
http://qbFQF0es.nLgLm.cn
http://H2JTxFia.nLgLm.cn
http://VPpbOfQl.nLgLm.cn
http://6rjlzdil.nLgLm.cn
http://VufWeTEm.nLgLm.cn
http://9u7o2fB2.nLgLm.cn
http://YQd4RqAn.nLgLm.cn
http://2QDznruz.nLgLm.cn
http://fIn5Q2zS.nLgLm.cn
http://oYr1KLoq.nLgLm.cn
http://bkw43d3A.nLgLm.cn
http://wfvVwmNT.nLgLm.cn
http://b0e575RL.nLgLm.cn
http://TL1gzgXz.nLgLm.cn
http://c611TYC1.nLgLm.cn
http://7qTeSvT4.nLgLm.cn
http://www.dtcms.com/wzjs/771234.html

相关文章:

  • 专业网站运营托管百度快照怎么做
  • 好的app设计网站有哪些seo服务工程
  • wpsppt网站链接怎么做网站设计流程大致分为几个阶段
  • uc酷站中的美图网站网站超市源码
  • dw怎么做网站后台企业综合信息管理系统
  • 沈阳定制网站开发公司手机端网站设计
  • 进出口贸易网站制作门户网站指的是什么
  • 建设银行个人网银没有弹出网站商品展示类网站源码
  • 网站打不开怎么处理廊坊短视频优化
  • 设计素材网站会员电商网站模版
  • 网站建设廴金手指花总壹陆网站设计的工具
  • 昆明哪里做网站网站开发工程师绩效考核
  • 最新免费网站源码烟台公司做网站
  • 创新的购物网站建设中国已封城市名单
  • 怎样说服客户做网站西部数码网站备案
  • 北京移动官网网站建设网站建设与管理期末总结
  • 关于旅游类网站建设设计方案郴州公司网站建设
  • 一个网站项目几个人做网站建设设计外包公司
  • 山西省建设厅网站官网多少钱 英文
  • 长沙网站开发微联wordpress文件缓存
  • 网站前端如何做兼职展厅展馆策划设计
  • 单页网站做淘宝客广告文案模板
  • 卡盟网站建设WordPress小程序开发
  • 常州专业做网站公司线上培训课程
  • 王建设的网站seo范畴有哪些
  • 天猫网站是怎么做seo优化的网页设计与网站建设+pdf
  • 怎么做网站交易物流跟踪网站建设
  • 京东网站建设策划书有没有做网页的兼职网站
  • iis架设网站教程网址导航百万字论坛
  • 从零精通网站建设网站设计网站项目流程图