最近在学习设计模式,之前断断续续的看过好多,自己也没有专门的练习和深入了解过,一直感觉对应设计模式相关的东西还是处于懵懂状态,这次下定决心好好的学习一下,所以做一个笔记用来督促自己。
资料收集与以下网站,如有冒犯,烦请告知
https://www.runoob.com/design-pattern/design-pattern-tutorial.html
简单说明
- 工厂模式属于创建型设计模式的一种。
- 使用这个模式,我们不需要知道实例是怎么创建的,完全由工厂根据我们的需求来搞。
- 每次增加新实例的时候,都需要添加一个具体类和实现工厂,增加了系统的复杂度,同时也增加了系统具体类的依赖。
- 编不下去了!!!我承认我就是个菜狗
简单理解
- 需要定义一个接口,包含各产品的共通的东西。
- 各产品实现上面的接口
- 定义工厂类用于生产
我需要一个小伙伴陪我一起coding,奈何现实不理我,没办法,自己生产一个???
1.定义一个接口
1 2 3 4
| public interface Coder{ void coding(); }
|
2.来一个Android的coder吧
1 2 3 4 5 6
| public class Android implements Coder{ @Override public void coding(){ System.out.println("Android开发,在线接客!") } }
|
3.其实IOS开发也是可以的
1 2 3 4 5 6
| public class Ios implements Coder{ @Override public void coding(){ System.out.println("没有bug的日子,好寂寞!!!") } }
|
4.需要一个学校?培训机构来生产他们啊(Factory)
1 2 3 4 5 6 7 8 9 10 11 12
| public class CoderFactory{ public Coder getCoder(String type){ if(null == type) return null; if("ANDROID".equalsIgnoreCase(type)){ return new Android(); }else if("IOS".equalsIgnoreCase(type)){ return new Ios(); } return null; } }
|
5.神说要有光~~~
1 2 3 4 5 6 7 8 9
| public class TestCoder{ public static void main(String[] args){ CoderFactory factory = new CoderFactory(); Android android = factory.getCoder("Android"); Ios ios = factory.getCoder("IOS"); android.coding(); ios.coding(); } }
|
梦醒了,除了嘴角有点湿,啥也没搞到。