工厂设计模式
工厂设计模式
OOP基于接口的设计,高内聚,低耦合
DrinkFactory用来存储不同的对象,但是,这样会造成返回值存在多个类型,解决的方法是运用向上转型,定义接口类型作为父类,具体的实现对象作为接口的实现子类。
注意工厂中的getInstance方法声明为静态static方法,此方法用来获取具体的对象。

进一步实现

进一步完善

完善代码,去除构造方法,避免直接new调用
最终版本

package oop;
/**
* 工厂模式
* 基于接口的设计模式
*/
interface Drink{public void drink();}
class Milk implements Drink{
public void drink(){System.out.println("喝牛奶");}
}
class Bear implements Drink{
public void drink(){System.out.println("喝啤酒");}
}
class DrinkFactory{
private DrinkFactory(){};//完善
public static Drink getInstance(String str){//工厂用来存储不同的对象
if (str.equalsIgnoreCase("m")) {
return new Milk();
}else if (str.equalsIgnoreCase("b")) {
return new Bear();
}
return null;
}
}
public class Gongchang {
public static void main(String[] args) {
//注意声明为静态static方法
Drink d1=DrinkFactory.getInstance("m");
d1.drink();
Drink d2=DrinkFactory.getInstance("b");
d2.drink();
}
}
oraclepeixun

浙公网安备 33010602011771号