设计模式之Facade---外观模式

Facade---外观模式:

1,在设计初期阶段,应该有意识的将不同的层分离。

2,在开发阶段,增加FACADE可以减少类的接口之间的依赖。

3,在维护遗留的大型系统时,为新系统开发一个外观类,让新系统与外观类交互,外观与遗留代码交互所有复杂的工作。

 1 /*
 2  * Created by SharpDevelop.
 3  * User: home
 4  * Date: 2013/4/24
 5  * Time: 22:18
 6  *
 7  * To change this template use Tools | Options | Coding | Edit Standard Headers.
 8  */
 9 using System;
10
11 namespace Facade
12 {
13     class Stock
14     {
15         public void Sell()
16         {
17             Console.WriteLine("股票卖出");
18         }
19         public void Buy()
20         {
21             Console.WriteLine("投票买入");
22         }
23     }
24
25     class NationDebt
26     {
27         public void Sell()
28         {
29             Console.WriteLine("国债卖出");
30         }
31         public void Buy()
32         {
33             Console.WriteLine("国债买入");
34         }
35     }
36
37     class Realty
38     {
39         public void Sell()
40         {
41             Console.WriteLine("地产卖出");
42         }
43         public void Buy()
44         {
45             Console.WriteLine("地产买入");
46         }
47     }
48
49     class Fund
50     {
51         Stock st;
52         NationDebt nd;
53         Realty re;
54
55         public Fund()
56         {
57             st = new Stock();
58             nd = new NationDebt();
59             re = new Realty();
60         }
61         public void BuyFund()
62         {
63             st.Buy();
64             nd.Buy();
65             re.Buy();
66         }
67         public void SellFund()
68         {
69             st.Sell();
70             nd.Sell();
71             re.Sell();
72         }
73     }
74
75     class Program
76     {
77         public static void Main(string[] args)
78         {
79             Fund jijin = new Fund();
80             jijin.BuyFund();
81             Console.WriteLine("========");
82             jijin.SellFund();
83
84             Console.ReadKey(true);
85         }
86     }
87 }

时间: 2024-09-10 18:21:51

设计模式之Facade---外观模式的相关文章

设计模式之Facade(外观)模式

我们通过一个简单的开关电脑模拟程序来说明Facade模式(外观模式) CPU类 public class Cpu {  public void start()  {   system.out.print("CPU启动");  }  public void stop()  {   system.out.print("CPU关闭");  } }   电脑风扇类 public class Fan {  public void start()  {   system.out

C++设计模式编程中Facade外观模式的使用实例解析_C 语言

外观模式提供了一个统一的接口,用来访问子系统的一群接口.外观定义了一个高层接口,让子系统更容易使用.外观模式让接口变得简单,简化了子系统的接口.外观模式十分简单,简而言之,就是简化你的类的接口,将一系列的复杂的过程封装到内部,对外只提供最简单的接口.结构图: 适用场景:当你要为一个复杂子系统提供一个简单接口时.子系统往往因为不断演化而变得越来越复杂.大多数模式使用时都会产生更多更小的类.这使得子系统更具可重用性,也更容易对子系统进行定制,但这也给那些不需要定制子系统的用户带来一些使用上的困难.F

设计模式中的facade外观模式在JavaScript开发中的运用_基础知识

概念 外观模式(门面模式),是一种相对简单而又无处不在的模式.外观模式提供一个高层接口,这个接口使得客户端或子系统更加方便调用. 外观模式并不是适配器模式,适配器模式是一种包装器,用来对接口进行适配以便在不兼容系统中使用它.而创建外观元素则是图个方便.它并不用于达到需要特定接口的客户系统打交道这个目的,而是用于提供一个简化的接口. JavaScript代码示例 用一段再简单不过的代码来表示 var getName = function(){ return ''svenzeng" } var ge

php设计模式 Facade(外观模式)

复制代码 代码如下: <?php /** * 外观模式 示例 * * 为子系统中的一组接口提供一个一致的界面,定义一个高层接口,使得这一子系统更加的容易使用 */ class SubSytem1 { public function Method1() { echo "subsystem1 method1<br/>"; } } class SubSytem2 { public function Method2() { echo "subsystem2 meth

php设计模式 Facade(外观模式)_php技巧

模式定义:外观模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用.外观模式又称为门面模式,它是一种对象结构型模式. 模式结构: 外观模式的就是让client客户端以一种简单的方式来调用比较复杂的系统,来完成一件事情. Subsystem: 复制代码 代码如下: class car { public function start() { print_r("

通过C++程序示例理解设计模式中的外观模式_C 语言

举一个生活中的小例子,大凡开过学或者毕过业的都会体会到这样一种郁闷:你要去 n个地方办理 n 个手续(现在大学合并后就更加麻烦,因为可能那 n 个地方都隔的比较远). 但是实际上我们需要的就是一个最后一道手续的证明而已,对于前面的手续是怎么办的.到什么地方去办理我们都不感兴趣. 实际上在软件系统开发中也经常回会遇到这样的情况,可能你实现了一些接口(模块),而这些接口(模块)都分布在几个类中(比如 A 和 B.C.D):A 中实现了一些接口,B 中实现一些接口(或者 A 代表一个独立模块,B.C.

C# 设计模式系列教程-外观模式_C#教程

1. 概述 为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用. 2. 模式中的角色 2.1 外观类(Facade):外观类知道哪些子系统类负责处理请求,将客户的请求代理给恰当的子系统对象. 2.2 子系统类集合(SubSystem Classes):子系统类集合实现了子系统的功能,处理外观类对象指派的任务. 3. 模式解读 3.1 外观模式的类图 3.2 外观模式的代码实现 /// <summary> /// 子系统中的一个类 /// <

实例解析设计模式中的外观模式在iOS App开发中的运用_IOS

外观模式(Facade),为子系统中的一组接口提供一个一致的界面,此模式定义 一个高层接口,这个接口使得这一子系统更加容易使用. 下面给大家展示一下类的结构图,想必大家一看就明白了: 其实这个模式中,没有类与类之间的继承关系,只是进行了简单的类引用,统一了对外的接口而已.看起来是不是很简单?废话不多说了,下面简单向大家展示一下代码吧! 注意:本文所有代码均在ARC环境下编译通过. SubSystemOne类接口 复制代码 代码如下: #import <Foundation/Foundation.

设计模式之Facade(外观)

Facade的定义:为子系统中的一组接口提供一个一致的界面. Facade一个典型应用就是数据库JDBC的应用,如下例对数据库的操作: public class DBCompare { Connection conn = null: PreparedStatement prep = null: ResultSet rset = null: try { Class.forName( "<:driver>:" ).newInstance(): conn = DriverMana

.net设计模式实例之外观模式(Fa&amp;amp;ccedil;ade Pattern)

一.外观模式简介(Brief Introduction) 外观模式,为子系统的一组接口提供 一个统一的界面,此模式定义了一个高层接口,这一个高层接口使的子系统更加容易使用. 二.解决的问题(What To Solve)1.分离不同的两个层 典型的分层例子是 Net三层架构,界面层与业务逻辑层分离,业务逻辑层与数据访问层分类.这样可以为子系 统提供统一的界面和接口,降低了系统的耦合性. 2.减少依赖 随着功能增 加及程序的重构,系统会变得越来越复杂,这时增加一个外观可以提供一个简单的接口,减 少他