本文共 1449 字,大约阅读时间需要 4 分钟。
工厂方法模式简介 工厂方法模式中的接口工厂负责定义创建对象的方法,具体对象的创建由实现抽象工厂接口的实现类完成。 工厂方法的优点:不需要使用者(客户端)去创建.
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(); } }}
运行结果如下:
恭喜你获得澳大利亚元
恭喜你获得人民币恭喜你获得美元————————
好了,就写到这里,看官们觉得涨知识了,请在文章左侧点个赞 ^_^
转载地址:http://nsrsn.baihongyu.com/