设计模式 - 抽象工厂

今天看了第一个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

你可能感兴趣的:(设计模式)