• 设计模式 抽象工厂


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

  • 相关阅读:
    Light oj 1197
    UVA 11426 GCD
    Light oj 1236
    Light oj 1138
    Light oj 1214-Large Division (同余定理)
    Light oj 1234
    HDU
    ZOJ 3469 Food Delivery(* 区间DP 总结)
    二分查找整理
    zoj 3965 Binary Tree Restoring(* dfs)
  • 原文地址:https://www.cnblogs.com/Dabay/p/361660.html
Copyright © 2020-2023  润新知