工厂模式(Factory)
接下来我将写点设计模式的,大部分是从各位名家看到的,当然会间杂自己的一些理解。
做知识的过滤器和搬运工
工厂模式有三种,分别是简单工厂模式、工厂方法和抽象工厂模式,属于创建型模式。当然没有最好,只有最合适。
简单工厂模式
根据传入的参数创建对象。
UML:
代码:
1: public static void main(String[] args) {
2: Person chineser=PersonFactory.getPerson("Chinese");
3: Person american=PersonFactory.getPerson("American");
4: System.out.println(chineser.sayHello("张三"));
5: System.out.println(american.sayHello("张三"));
6: /*
7: * 你好,张三
8: * hello,张三
9: */
10: }
工厂类相当于上帝类,提供静态方法来创建所有产品(这里是中国人、美国人),你叫他造中国人就造中国人,你的话就是传入参数,这可以是字符串,也可以是枚举。
工厂方法
专一工厂出现。
UML:
代码:
1: public static void main(String[] args) {
2: IAnimalFactory catFactory=new CatFactory();
3: IAnimal cat=catFactory.createAnimal();
4: cat.eat();
5:
6: IAnimalFactory dogFactory=new DogFactory();
7: IAnimal dog=dogFactory.createAnimal();
8: dog.eat();
9:
10: /*
11: * cat eating!
12: * dog eating!
13: */
14: }
在简单工厂上有所优化,去除了上帝类,增加专职工厂,不同工厂只管生产一个产品。不同工厂的区别在工厂创建时产生。
抽象工厂模式
产品族概念产生。
UML:
代码:
1: public static void main(String[] args) {
2: IAnimalFactory blackAnimalFactory=new BlackAnimalFactory();
3: ICat blackCat=blackAnimalFactory.createCat();
4: blackCat.eat();
5: IDog blackDog=blackAnimalFactory.createDog();
6: blackDog.bark();
7:
8: IAnimalFactory whiteAnimalFactory=new WhiteAnimalFactory();
9: ICat whiteCat=whiteAnimalFactory.createCat();
10: whiteCat.eat();
11: IDog whiteDog=whiteAnimalFactory.createDog();
12: whiteDog.bark();
13: // The black cat is eating!
14: // The black dog is barking!
15: // The White cat is eating!
16: // The White dog is barking!
17: }
抽象工厂模式,对工厂方法的衍生,对更一般事务的抽象。
作者:但,我知道
出处:http://www.cnblogs.com/haichao/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架