大家可能都有过外出旅游之前把必备品打包放进旅行箱的经历。其实外观模式就类似于“打包”这个动作。给各种小物件穿上一件名为“Facade”的外衣,把放在窗台啊,地板啊,厨房啊各个地方的必需品打包,放进这个箱子里面。用的时候就直接在这个包里去找,而不用乱七八糟的四处搜寻。这个箱子就是我们找到需要对象的接口,而外观模式的中心就是为各子系统提供这样一个抽象接口,使得子系统更加容易使用。
再者讲说这个外行通过炒股挣钱,但是大家都不懂得管理每支股票,且股票和股民之间耦合度过高,股民也因此忙得不亦乐乎,最后还以亏本告终,赔了夫人又折兵。而买基金就不一样了,让别的专业人士对基金进行管理,而实质也是在管理不同的股票。但是外行股民则不需要直接对每一支股票进行直接管理,为不同的股票穿上了基金这个外衣,将其包裹其中,对股民提供此接口,股民直接了解基金的起伏即可。
具体代码如下:
具体子系统1、2…..:
Class System1
{
Public void MethodOne()
{
Console.writeline(" ")
}
}
Class System2
{
Public void MethodTwo()
{
Console.writeline(" ")
}
}
.
.
.
.
. //N过个子系统
外观类:
Class Façade
{
System1 ;
System2;
Public Façade()
{
One=new System1();
Two=new System2();
}
Public void MethodA()
{
Console.writeline();
One.Methodone();
Two.MethodTwo();
}
Public void MethodB()
{
Console.writeline();
One.Methodone();
Two.MethodTwo();
}
}
可见,外观模式实质就是Mr.依赖倒转的忠实粉丝,把其依赖于抽象的优良传统体现得淋漓尽致。通过对涉及模式的总结发现,拜倒在DIP君脚丫子底下的又岂止这一位。策略模式、观察者模式、工厂三姐妹的老大和老二都发家于此原则。所以有一个良好的标榜是我们发家致富奔小康的基础,庆幸的是我们身边有这么多优秀的娃娃,大家相互依赖,相互学习啦!