外观模式
来源:互联网 发布:1到100全部素数c语言 编辑:程序博客网 时间:2024/06/04 23:37
师傅说在个人机房重构的时候至少要用到抽象工厂模式和外观模式,那么外观模式一定很基础啦,因此把外观模式总结一下,加深印象,为以后铺好路吧(其实是这周博客不知道写啥了)
那么什么是外观模式呢?
外观模式为子系统的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
外观模式结构图如下:
下面以股民炒股为例来解释外观模式,新股民在没有足够了解证券知识的情况下很容易亏钱,而通过基金由专业经理人管理则是一条很好的选择,在编程中,就是众多股民只和基金打交道,而实际操作交由基金经理人来完成,从而避免了股民和股票耦合性过高的弊端。
namespace 外观模式{ class Program { static void Main(string[] args) { //股民对股票的购买售出由基金完成 Fund jijin = new Fund(); //基金购买 jijin.BuyFund(); //基金赎回 jijin.SellFund(); Console.Read(); } } //股票类 class Stock1 { //卖股票 public void Sell() { Console.WriteLine("股票1卖出"); } //买股票 public void Buy() { Console.WriteLine("股票1买入"); } } class Stock2 { //卖股票 public void Sell() { Console.WriteLine("股票1卖出"); } //买股票 public void Buy() { Console.WriteLine("股票1买入"); } } class Stock3 { //卖股票 public void Sell() { Console.WriteLine("股票1卖出"); } //买股票 public void Buy() { Console.WriteLine("股票1买入"); } } //基金类,了解所有的股票的方法和属性,以备外界调用 class Fund { Stock1 gu1; Stock2 gu2; Stock3 gu3; public Fund() { gu1 = new Stock1(); gu2 = new Stock2(); gu3 = new Stock3(); } public void BuyFund() { gu1.Buy(); gu2.Buy(); gu3.Buy(); } public void SellFund() { gu1.Sell(); gu2.Sell(); gu3.Sell(); } }}这里的基金类就相当于外观类,充当了一个代理的角色。
使用:
1、在设计初期阶段,应该要有意识的将不同的两个层分离,在层与层之间建立外观Facade,这样可以为复杂的子系统提供一个简单的接口,使得耦合大大降低。(不久就要用到了)
2、在开发阶段,子系统往往因为不断的重构演化而变得越来越复杂,增加外观Facade可以提供一个简单的接口,减少它们之间的依赖。
3、在维护一个遗留的大型系统时,可能这个系统已经非常难以维护和扩展了,这时可以为新系统开发一个外观Facade类,来提供设计粗糙或高度复杂的遗留代码的比较清晰简单的接口,让新系统与Facade对象交互,Facade与遗留代码交互所有复杂的工作。
0 0
- 外观模式
- 外观模式
- 外观模式
- 外观模式
- 外观模式
- 外观模式
- 外观模式
- 外观模式
- 外观模式
- 外观模式
- 外观模式
- 外观模式
- 外观模式
- 外观模式
- 外观模式
- 外观模式
- 外观模式
- 外观模式
- Struts2之文件上传(单文件/多文件)
- TCP/IP (五) TCP连接的内存使用
- Struts2之文件下载
- 如果编程是女人
- makefile中的wildcard用法
- 外观模式
- Saltstack内置核心模块useradd
- C#中的接口
- Spring获取ApplicationContext的方法
- Face Detection & Alignment
- 跳转界面Intent 显示意图和隐式意图的特点
- 一、storm基础概念
- Saltstack内置核心模块shadow
- 【Machine Learning公开课】Chapter 2