设计模式-工厂模式

最近在学习设计模式,之前断断续续的看过好多,自己也没有专门的练习和深入了解过,一直感觉对应设计模式相关的东西还是处于懵懂状态,这次下定决心好好的学习一下,所以做一个笔记用来督促自己。
资料收集与以下网站,如有冒犯,烦请告知

https://www.runoob.com/design-pattern/design-pattern-tutorial.html


简单说明

  1. 工厂模式属于创建型设计模式的一种。
  2. 使用这个模式,我们不需要知道实例是怎么创建的,完全由工厂根据我们的需求来搞。
  3. 每次增加新实例的时候,都需要添加一个具体类和实现工厂,增加了系统的复杂度,同时也增加了系统具体类的依赖。
  4. 编不下去了!!!我承认我就是个菜狗

简单理解

  1. 需要定义一个接口,包含各产品的共通的东西。
  2. 各产品实现上面的接口
  3. 定义工厂类用于生产

我需要一个小伙伴陪我一起coding,奈何现实不理我,没办法,自己生产一个???

1.定义一个接口

1
2
3
4
public interface Coder{
//会coding就够了,还要啥自行车
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();
}
}

梦醒了,除了嘴角有点湿,啥也没搞到。