工厂方法模式简介
工厂方法模式中的接口工厂负责定义创建对象的方法,具体对象的创建由实现抽象工厂接口的实现类完成。
工厂方法的优点:不需要使用者(客户端)去创建.
package DesignModes;
abstract class Moneys {
public abstract void checkCurrency();
}
class RMB extends Moneys {
@Override
public void checkCurrency() {
System.out.println( "恭喜你获得人民币");
}
}
class AUD extends Moneys {
@Override
public void checkCurrency() {
System.out.println( "恭喜你获得澳大利亚元");
}
}
class USD extends Moneys {
@Override
public void checkCurrency() {
System.out.println( "恭喜你获得美元");
}
}
interface Mint {
Moneys createCurrency(String money); // 铸币厂专门铸造货币
}
class CurrencyMaker implements Mint {
@Override
public Moneys createCurrency(String money) {
if (money.toUpperCase().equals( "RMB")) {
return new RMB();
} else if (money.toUpperCase().equals( "AUD")) {
return new AUD();
} else if (money.toUpperCase().equals( "USD")) {
return new USD();
} else {
return null;
}
}
}
public class MoneysFacotoryDemo {
public static void main(String[] args) {
CurrencyMaker cmk = new CurrencyMaker();
// 创建一个澳大利亚元货币
Moneys money = cmk.createCurrency( "AUD");
if (money != null) {
money.checkCurrency();
}
// 创建一个人民币元货币
CurrencyMaker cmk2 = new CurrencyMaker();
Moneys money2 = cmk2.createCurrency( "RMB");
if (money2 != null) {
money2.checkCurrency();
}
// 创建一个美元
CurrencyMaker cmk3 = new CurrencyMaker();
Moneys usd = cmk3.createCurrency( "USD");
if (usd != null) {
usd.checkCurrency();
}
}
}
运行结果如下:
恭喜你获得澳大利亚元
恭喜你获得人民币
恭喜你获得美元
————————
好了,就写到这里,看官们觉得涨知识了,请在文章左侧点个赞 ^_^