设计模式 抽象工厂

今天看了第一个Abstract Factory, 自己尝试写了一个Demo, 不知道理解得正确否, 请指教! 谢谢
抽象铸币厂(生产money)
public abstract class MoneyMaker
{
    
public abstract Ten MakeTen();
    
public abstract Hundred MakeHundred();
}
中国的铸币厂(能生产RMB)
public class ChinaMoneyMaker : MoneyMaker
{
    
public override Ten MakeTen()
    
{
        
return new RMBTen();
    }

        
    
public override Hundred MakeHundred()
    
{
        
return new RMBHundred();
    }

}
美国的铸币厂(能生产美元)
public class UsMoneyMaker : MoneyMaker
{
    
public override Ten MakeTen()
    
{
        
return new DollarTen();
    }

    
    
public override Hundred MakeHundred()
    
{
        
return new DollarHundred();
    }

}
十元的货币(抽象基类,有支付的功能)
public abstract class Ten
{
    
public abstract void Pay();
}
百元的货币
public abstract class Hundred
{
    
public abstract void Pay();
}
人民币的十元
public class RMBTen : Ten
{
    
public override void Pay()
    
{
        Console.WriteLine(
"10 RMB have been pay.");
    }

}
人民币的百元, 美元的十元, 美元的百元 (略...)
测试程序
public class App
{
    
public static void Main()
    
{
        MoneyMaker mm 
= new ChinaMoneyMaker();
        Ten t 
= mm.MakeTen();
        t.Pay();
        Hundred h 
= mm.MakeHundred();
        h.Pay();
        mm 
= new UsMoneyMaker();
        t 
= mm.MakeTen();
        t.Pay();
        h 
= mm.MakeHundred();
        h.Pay();
        Console.ReadLine();
    }

}

源程序下载 AbstractFactory Demo

原文地址:https://www.cnblogs.com/Dabay/p/361660.html