外观模式:
外观模式(Facde),为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
结构图:
代码实现:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 外观模式
{
class stock1
{
public void Sell()
{
Console.WriteLine("股票1卖出!");
}
public void Buy()
{
Console.WriteLine("股票1 买!");
}
}
class NationalDebt1
{
public void Sell()
{
Console.WriteLine("国债1 卖出!");
}
public void Buy()
{
Console.WriteLine("国债1 买!");
}
}
class Realty
{
public void Sell()
{
Console.WriteLine("房地产1 卖出!");
}
public void Buy()
{
Console.WriteLine("房地产1 买!");
}
}
class Fund
{
stock1 gu1;
NationalDebt1 gu2;
Realty gu3;
public Fund()
{
gu1 = new stock1();
gu2 = new NationalDebt1();
gu3 = new Realty();
}
public void BuyFund()
{
gu1.Buy();
gu2.Buy();
gu3.Buy();
}
public void SellFund()
{
gu1.Sell();
gu2.Sell();
gu3.Sell();
}
}
class Program
{
static void Main(string[] args)
{
Fund fund = new Fund();
fund.BuyFund();
fund.SellFund();
Console.ReadKey();
}
}
}
使用场景:
1 设计初期阶段,应该有意识的将不同层分离,层与层之间建立外观模式。
2 开发阶段,子系统越来越复杂,增加外观模式提供一个简单的调用接口。
3 维护一个大型遗留系统的时候,可能这个系统已经非常难以维护和扩展,但又包含非常重要的功能,为其开发一个外观类, 以便新系统与其交互
总结:
外观模式完美的体现了依赖倒转和迪米特法则,感觉这个模式挺重要的。