外观模式实例

所谓外观类就是提供一个中间类(外观类),来降低客户和子系统的耦合,如果需求有变,换一个外观类就好了,接口不变。

举一个基金的例子,子系统是投资股票和银行...

using System;

public class YinHang {

    public int GetInCome(int money)
    {
        Random r = new Random();
        int income = money * r.Next(-10,100) / 1000;

        return income;
    }
	
}
using System;

public class GuPiao  {

    public int GetIncome(int money)
    {
        Random r = new Random();
        int income = money * r.Next(-10, 10) / 100;

        return income;
    }

}

基金公司外观类

public class JiJinCompany  {

    //将子系统整合起来
    private YinHang mYingHang;
    private GuPiao mGuPiao;
    private int mMoney;

    public JiJinCompany(int money)
    {
        mYingHang = new YinHang(); 
        mGuPiao = new GuPiao() ;
        mMoney = money;
    }

    //提供接口对外处理
    public int GetIncome()
    {
        int income = 0;
        income += mYingHang.GetInCome(mMoney);
        income += mGuPiao.GetIncome(mMoney);

        mMoney += income;

        return income;
    }

}

现在有了基金公司这个外观类,你只需要给钱它,它就会自动帮你去投资银行和股票,但是你不知道是怎么投资的。(迪米特法则)

如果是你自己去投资,你去要去银行,又要去股市,而有了外观类(基金公司),就只需要知道基金公司就行了。(外观模式使用示例


首页 我的博客
粤ICP备17103704号