抽象工厂模式

抽象工厂模式也就是不仅生产鼠标,同时生产键盘。
也就是 PC 厂商是个父类,有生产鼠标,生产键盘两个接口。
戴尔工厂,惠普工厂继承它,可以分别生产戴尔鼠标+戴尔键盘,和惠普鼠标+惠普键盘。
创建工厂时,由戴尔工厂创建。
后续工厂.生产鼠标()则生产戴尔鼠标,工厂.生产键盘()则生产戴尔键盘。
抽象工厂

阅读全文 »

工厂方法模式

工厂方法模式也就是鼠标工厂是个父类,有生产鼠标这个接口。
戴尔鼠标工厂,惠普鼠标工厂继承它,可以分别生产戴尔鼠标,惠普鼠标。
生产哪种鼠标不再由参数决定,而是创建鼠标工厂时,由戴尔鼠标工厂创建。
后续直接调用鼠标工厂.生产鼠标()即可
工厂方法

阅读全文 »

简单工厂模式

简单工厂模式不是 23 种里的一种,简而言之,就是有一个专门生产某个产品的类。
比如下图中的鼠标工厂,专业生产鼠标,给参数 0,生产戴尔鼠标,给参数 1,生产惠普鼠标。
简单工厂

阅读全文 »

菜鸟教程笔记-计算机读取SD卡例子

先模拟计算机读取SD卡:

1、先创建一个SD卡的接口:

public interface SDCard {
//读取SD卡方法
String readSD();
//写入SD卡功能
int writeSD(String msg);
}

2、创建SD卡接口的实现类,模拟SD卡的功能:

public class SDCardImpl implements SDCard {
@Override
public String readSD() {
String msg = "sdcard read a msg :hello word SD";
return msg;
}
@Override
public int writeSD(String msg) {
System.out.println("sd card write msg : " + msg);
return 1;
}
}

3、创建计算机接口,计算机提供读取SD卡方法:

public interface Computer {    
String readSD(SDCard sdCard);
}

4、创建一个计算机实例,实现计算机接口,并实现其读取SD卡方法:

public class ThinkpadComputer implements Computer {
@Override
public String readSD(SDCard sdCard) {
if(sdCard == null)throw new NullPointerException("sd card null");
return sdCard.readSD();
}
}

5、这时候就可以模拟计算机读取SD卡功能:

public class ComputerReadDemo {    
public static void main(String[] args) {
Computer computer = new ThinkpadComputer();
SDCard sdCard = new SDCardImpl();
System.out.println(computer.readSD(sdCard));
}
}
阅读全文 »