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

千博网站管理系统安装推广品牌的策划方案

千博网站管理系统安装,推广品牌的策划方案,安阳做网站的费用,免费建网上商城工厂模式有三种,分别是简单工厂模式、工厂方法模式、抽象工厂模式。三种模式从前到后越来越抽象,也更具有一般性。 设计模式 优点 缺点 简单工厂 1.实现了对责任的分割,它提供了专门的工厂类用于创建对象。 1.违背了开闭原则。 2.使用了…

工厂模式有三种,分别是简单工厂模式、工厂方法模式、抽象工厂模式。三种模式从前到后越来越抽象,也更具有一般性。

设计模式

优点

缺点

简单工厂

1.实现了对责任的分割,它提供了专门的工厂类用于创建对象。

1.违背了开闭原则。

2.使用了静态工厂方法,静态方法不能被继承和重写。

工厂方法

1.避免创建者与具体的产品逻辑耦合 。

2.满⾜单⼀职责,每⼀个业务逻辑实现都在所属⾃⼰的类中完成 。

3.满⾜开闭原则,⽆需更改使⽤调⽤⽅就可以在程序中引⼊新的产品类型

1.如果存在非常多的产品类型,实现的子类就会极速扩张。

抽象工厂

1.满足了单一职责、开闭原则、解耦等优点。

1.随着业务的不断拓展,可能会造成类实现上的复杂度。

简单工厂

一个工厂创建所有具体产品。对于增加新的产品,主要是新增产品,就要修改工厂类。符合单一职责原则。不符合开放-封闭原则

// 假设 Animal 是一个接口或抽象类
// Tiger 和 Cat 是实现了 Animal 接口的类// 定义 Animal 接口/抽象类
interface Animal {// 动物通用的方法(如果需要)
}// 具体的 Tiger 实现
class Tiger implements Animal {// 老虎的具体实现
}// 具体的 Cat 实现
class Cat implements Animal {// 猫的具体实现
}class AnimalFactory {// 定义 AnimalType 枚举public enum AnimalType {TIGER, // 老虎类型CAT    // 猫类型}// 静态方法,用于创建动物public static Animal createAnimal(AnimalType type) {if (AnimalType.TIGER == type) {return new Tiger(); // 如果是老虎类型,则创建 Tiger 对象} else if (AnimalType.CAT == type) {return new Cat();   // 如果是猫类型,则创建 Cat 对象}return null; // 如果类型不匹配,则返回 null (或者可以抛出 IllegalArgumentException 异常)}// 示例用法(可选,用于测试)public static void main(String[] args) {// 通过工厂创建老虎Animal tiger = AnimalFactory.createAnimal(AnimalType.TIGER);System.out.println("创建了动物: " + tiger.getClass().getSimpleName());// 通过工厂创建猫Animal cat = AnimalFactory.createAnimal(AnimalType.CAT);System.out.println("创建了动物: " + cat.getClass().getSimpleName());// 尝试创建未知类型的动物(会返回 null)Animal unknown = AnimalFactory.createAnimal(null); // 传入 null 仅作演示,实际应用中应避免if (unknown == null) {System.out.println("未知类型的动物无法创建。");}}
}

优点:

1.实现了对责任的分割,它提供了专门的工厂类用于创建对象。

缺点:

1.违背了开闭原则。

2.使用了静态工厂方法,静态方法不能被继承和重写。

工厂方法

一个工厂方法只创建一个具体产品。支持增加任意产品,新增产品时不需要更改已有的工厂,需要增加该产品对应的工厂。符合单一职责原则、符合开放-封闭原则。但是引入了复杂性。

// 动物基类
abstract class Animal {// 可以在这里定义动物共有的方法和属性
}// 具体动物类 - 猫
class Cat extends Animal {public Cat() {System.out.println("创建了一只猫");}
}// 具体动物类 - 老虎
class Tiger extends Animal {public Tiger() {System.out.println("创建了一只老虎");}
}// 抽象工厂接口
interface AnimalFactory {Animal createAnimal();
}// 猫工厂实现
class CatFactory implements AnimalFactory {@Overridepublic Animal createAnimal() {return new Cat();}
}// 老虎工厂实现
class TigerFactory implements AnimalFactory {@Overridepublic Animal createAnimal() {return new Tiger();}
}// 使用示例
public class FactoryExample {public static void main(String[] args) {// 创建猫工厂并生产猫AnimalFactory catFactory = new CatFactory();Animal cat = catFactory.createAnimal();  // 输出: 创建了一只猫// 创建老虎工厂并生产老虎AnimalFactory tigerFactory = new TigerFactory();Animal tiger = tigerFactory.createAnimal();  // 输出: 创建了一只老虎}
}

优点:

1.避免创建者与具体的产品逻辑耦合 。

2.满⾜单⼀职责,每⼀个业务逻辑实现都在所属⾃⼰的类中完成 。

3.满⾜开闭原则,⽆需更改使⽤调⽤⽅就可以在程序中引⼊新的产品类型

缺点:

1.如果存在非常多的产品类型,实现的子类就会极速扩张。

抽象工厂

一个工厂方法只创建一类具体产品。增加新产品时,需要修改工厂,增加产品族时,需要增加工厂。符合单一职责原则,部分符合开放-封闭原则,降低了复杂性

// 假设 AbsractAnimalFactory 是一个抽象类或接口
// AnimalType 是一个枚举(TIGER, CAT)
// Animal 是一个接口或抽象类// 定义 Animal 接口/抽象类
interface Animal {// 动物通用的方法(如果需要)
}// SimpleMode 下具体的 Animal 实现
class SimpleModeTiger implements Animal {// SimpleMode 老虎的具体实现
}class SimpleModeCat implements Animal {// SimpleMode 猫的具体实现
}// HardMode 下具体的 Animal 实现
class HardModeTiger implements Animal {// HardMode 老虎的具体实现
}class HardModeCat implements Animal {// HardMode 猫的具体实现
}// 定义 AnimalType 枚举
enum AnimalType {TIGER, // 老虎类型CAT    // 猫类型
}// 定义抽象工厂 (AbsractAnimalFactory)
abstract class AbsractAnimalFactory {public abstract Animal createAnimal(AnimalType type);
}// SimpleModeAnimalFactory 实现
class SimpleModeAnimalFactory extends AbsractAnimalFactory {@Overridepublic Animal createAnimal(AnimalType type) {if (AnimalType.TIGER == type) {return new SimpleModeTiger(); // 创建 SimpleMode 老虎} else if (AnimalType.CAT == type) {return new SimpleModeCat();   // 创建 SimpleMode 猫}return null; // 或者抛出 IllegalArgumentException 异常}
}// HardModeAnimalFactory 实现
class HardModeAnimalFactory extends AbsractAnimalFactory {@Overridepublic Animal createAnimal(AnimalType type) {if (AnimalType.TIGER == type) {return new HardModeTiger(); // 创建 HardMode 老虎} else if (AnimalType.CAT == type) {return new HardModeCat();   // 创建 HardMode 猫}return null; // 或者抛出 IllegalArgumentException 异常}
}// 示例用法(可选,用于测试)
public class AnimalFactoryDemo {public static void main(String[] args) {// 创建 Simple 模式动物工厂AbsractAnimalFactory simpleFactory = new SimpleModeAnimalFactory();Animal simpleTiger = simpleFactory.createAnimal(AnimalType.TIGER); // 通过 Simple 工厂创建老虎Animal simpleCat = simpleFactory.createAnimal(AnimalType.CAT);     // 通过 Simple 工厂创建猫// 创建 Hard 模式动物工厂AbsractAnimalFactory hardFactory = new HardModeAnimalFactory();Animal hardTiger = hardFactory.createAnimal(AnimalType.TIGER);   // 通过 Hard 工厂创建老虎Animal hardCat = hardFactory.createAnimal(AnimalType.CAT);       // 通过 Hard 工厂创建猫System.out.println("创建了 Simple 模式的老虎: " + simpleTiger.getClass().getSimpleName());System.out.println("创建了 Simple 模式的猫: " + simpleCat.getClass().getSimpleName());System.out.println("创建了 Hard 模式的老虎: " + hardTiger.getClass().getSimpleName());System.out.println("创建了 Hard 模式的猫: " + hardCat.getClass().getSimpleName());}
}

优点:1.满足了单一职责、开闭原则、解耦等优点。

缺点:1.随着业务的不断拓展,可能会造成类实现上的复杂度。


文章转载自:

http://LH3mCB3r.hgsmz.cn
http://sGG8ep00.hgsmz.cn
http://oXptWovM.hgsmz.cn
http://bihF3qrg.hgsmz.cn
http://NyKVvwOE.hgsmz.cn
http://etB5Alb8.hgsmz.cn
http://KjlvuNYo.hgsmz.cn
http://vQeZaTdm.hgsmz.cn
http://zM4CZg7R.hgsmz.cn
http://PMiZRpt1.hgsmz.cn
http://DNJGs1zP.hgsmz.cn
http://hlWHW9PK.hgsmz.cn
http://CLemTiVY.hgsmz.cn
http://NdB6ZMCD.hgsmz.cn
http://egAgbIl9.hgsmz.cn
http://2uNoYwI0.hgsmz.cn
http://LMjEqntE.hgsmz.cn
http://Z1xKMdfs.hgsmz.cn
http://fw2qmfFO.hgsmz.cn
http://P24C2Svs.hgsmz.cn
http://6G5pGdK4.hgsmz.cn
http://wNvlWBrN.hgsmz.cn
http://hJZ9vrDw.hgsmz.cn
http://P8uD79P5.hgsmz.cn
http://k0ghtm6E.hgsmz.cn
http://Jbf0x5Ui.hgsmz.cn
http://5CsSLcym.hgsmz.cn
http://oUxD4Oap.hgsmz.cn
http://rkatqvJq.hgsmz.cn
http://UkYtSOXq.hgsmz.cn
http://www.dtcms.com/wzjs/656071.html

相关文章:

  • 手机免费网站空间做网站赚钱什么类型
  • 许昌住房和城乡建设局网站天猫网站什么时候建设
  • 摄影官网网站编辑seo
  • 网站建设师要求WordPress上下拖动效果
  • 物流网站建设评析手机浏览网页在线代理
  • 温州做网站厉害的公司有哪些怎么做视频网站赚钱吗
  • seo优化排名推广优化关键词方法
  • 2021中文字幕入口网站wordpress文章导入在哪里
  • 泉州wap网站制作网站建设怎么样找客户快
  • 用网站做自我介绍ppt移动版wordpress
  • 云南昆明网站建设快速优化wordpress360极速模式打不开
  • 兰州网站seo哪家公司好广东各地最新病例
  • 邯郸建移动网站费用网站的建设内容
  • 郴州文明网网站网址被禁止访问怎么办
  • 东莞外贸网站建设微信管理系统下载
  • 怎么做自动提卡网站那个网站有免费模板
  • 中国免费网站服务器2020网站建设理由
  • 兰溪市建设局官方网站上海建网站服务器
  • 做公司网站用什么系统在word环境下wordpress
  • 西双版纳住房和城乡建设局网站深圳网站平台哪家强
  • 公交车网站怎么做留言板网站收录原创文章
  • 自己网站做搜索引擎优化运城网站建设公司
  • 中国建筑设计网官网淮安网站seo
  • 专业网页制作与网站设计把自己做的网站上传到服务器
  • 台州seo网站排名做医院门户网站 上海
  • 网站建设需求模版网站建设流程报价
  • 南昌做网站的公司有哪些虾皮这种网站根本不值得做
  • 做网站都有什么成本网站整体色彩的建设
  • 广东网站搭建app开发需要哪些技能
  • app制作成本网站做seo优化有什么优势