java设计模式初步摸索(简单工厂模式)
来源:互联网 发布:三六五网络 编辑:程序博客网 时间:2024/06/13 08:52
简单工厂模式大意:通过工厂能够生产不同的产品对象。利用一个单独的类创建不同类的实例化对象,所以简单工厂模式也算设计模式中创建型的一种,这个单独的类就是工厂类,能够实例化出不同类型的对象,如果我们需要什么类型的对象,可以通过工厂类获取,而不需要自己实例化,暂时理解为分门别类,统一管理的方式。
理解场景:每个人都需要穿鞋,古代人穿鞋大都需要自己做,穷人穿草鞋,富人穿布鞋,随着工业化的发展,现代人少有人自己纳鞋,而是直接购买,购买的鞋来自于工厂,为了满足市场不同的需求,工厂可以生产出各式各样的鞋(比如说莆田0.0),可生产“nike“,”adidas“,”Vans“,”CONVERSE”等。或许这就能体现简单工厂模式的优点吧。
1.个体和鞋工厂分工明确,这是低耦合的特点。
2.只需要一个工厂,就可以满足N多人穿鞋的需求。
3.很明显,鞋厂会适应各种人品味需求而增加鞋的种类,改变鞋的款式。而个人想做出自己想要的鞋显然不现实,这是良好的可扩展性。
简单工厂模式实现原理:
代码:
package cn.simplefactory;//抽象类角色interface Shoes{ public void showDiffer();}//具体产品角色class Vans implements Shoes{ @Override public void showDiffer(){ System.out.println("这是Vans!"); }}class CONVERSE implements Shoes{ @Override public void showDiffer(){ System.out.println("这是匡威!"); }}//工厂角色class ShoesFactory{ public static Shoes getshoesType(String str){ if(str.equals("vans")){ return new Vans(); } else if(str.equals("converse")){ return new CONVERSE(); } else return null; }}public class TestShoes { public static void main(String[] args) { Shoes s1 = ShoesFactory.getshoesType("vans"); s1.showDiffer(); Shoes s2 = ShoesFactory.getshoesType("converse"); s2.showDiffer(); }}
总结:简单工厂模式三要素:抽象类角色,具体产品角色,工厂类角色。
心得:学习设计模式要深入实践才能深刻明白其中的原理和使用方法。先大概了解设计模式的思想,在后面的漫漫长路中细细去体会。
阅读全文
0 0
- java设计模式初步摸索(简单工厂模式)
- Android设计模式-MVP模式初步摸索
- 简单工厂模式(java设计模式)
- Java设计模式--工厂模式(简单工厂+工厂方法)
- Java设计模式-工厂模式(简单工厂+工厂方法)
- Java设计模式:工厂模式(一)简单工厂模式
- Java设计模式-工厂模式(1)简单工厂模式
- Java 设计摸索--访问者模式
- Java 设计摸索--访问者模式
- java设计模式之工厂设计模式(简单工厂设计模式、工厂设计模式、抽象设计模式)
- java设计模式-工厂模式(简单工厂模式和工厂方法模式)
- JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式) (转)
- (转载)JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式)
- Java设计模式之工厂模式(一):简单工厂模式+工厂方法模式
- 设计模式-java工厂模式1(简单工厂模式+工厂方法模式)
- java 简单工厂设计模式
- JAVA设计模式--简单工厂
- Java简单工厂设计模式
- mybatis 报错:check the manual that corresponds to your MySQL server version for the right syntax
- mysql 下 计算 两点 经纬度 之间的距离 含具体sql语句
- Androidstudio更改包名
- DNA Sequencing
- https nginx 配置
- java设计模式初步摸索(简单工厂模式)
- mysql 5.7.18版本,linux系统下的安装
- STM32使用CubeMx用HAL库开发,怎么与PC进行USB双向的通信?
- 初识nodejs13
- mysql数据库优化 之 001
- 括号的配对
- iOS ComparisonResult详解
- Android性能优化
- C语言与Java实现:数制转换