- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
10外观模式解析.ppt
Java实例-冲茶(续) 顾客需要冲茶,只要调用FacadeCuppaMaker的一个方法就可以完成: public class Client { public static void main (String[] args) { FacadeCuppaMaker cuppaMaker = new FacadeCuppaMaker (); TeaCup teaCup = cuppaMaker.makeACuppa (); System.out.println (teaCup); } } Java实例-冲茶(续) 输出结果为: FacadeCuppaMaker准备好为你冲茶了! 茶杯准备好了 清香的茶包准备好了 纯净的水准备好了 茶包放在茶杯了 水在沸腾 水倒入杯子了 茶渗透到杯子中 一杯又香又浓的茶冲好了! 软件设计与体系结构 外观模式 主讲:李健利 外观模式 意图 =为子系统中的一组接口提供一个一致的界面,外观模式定义了一个使子系统更易于使用的高层接口。 动机 =将一个系统划分为若干个子系统有利于降低系统的复杂性 = 子系统是一组类,或一组类和其他子系统 = 被一个子系统(或一组子系统)中的类暴露的接口能够变得相当复杂 = 降低这种复杂性的途径之一是就是引入一个外观对象,它为子系统中较一般的设施提供一个单一而简单的接口。 外观模式 动机 外观模式 适用性 以下情况使用外观模式: =为一个复杂子系统提供一个简单接口时。该接口对大多数客户而言都足够好;更高级的客户能够穿越外观对象。 =将子系统的类与客户和其他子系统分离,从而提高子系统的独立性和可移植性 外观模式 结构 外观模式 外观模式 类和对象的关系为: Fa?ade:外形类 知道哪些子系统负责处理哪些请求 将客户的请求传递给相应的子系统对象处理 Subsystem: 子系统类 实现子系统的功能 处理由Fa?ade传过来的任务 子系统不用知道Fa?ade,在任何地方也没有引用Fa?ade 外观模式 典型应用的顺序图如下: 外观模式 效果 =收益 → 它对客户隐藏子系统的实现,从而使子系统更易于使用 → 它有利于子系统与客户之间的弱耦合。这就允许改变所包含的子系统但不影响客户。 → 在大型软件系统中降低编译依赖性 → 简化将系统移植到其他平台的过程,因为编译一个子系统一般不需要编译所有其他的子系统。 → 不阻止高级客户访问低层类 → 注意:外观不增加任何功能,它只是简化接口 =缺陷 → 不阻止高级客户访问低层类! 外观模式实例 编译器 股民炒股 股民炒股(续) 具体股票、国债、房产类 //股票1 class Stock1{ //卖股票 public void Sell(){ Console.WriteLine(“ 股票1卖出”); } //买股票 public void Buy(){ Console.WriteLine(“ 股票1买入”); } } 股民炒股(续) //股票2 class Stock2{ //代码类似股票1 略 } //股票3 class Stock3{ //代码类似股票1 略 } //国债1 class NationalDebt1{ //代码类似股票1 略 } 股民炒股(续) //房地产1 class Realty1{ //代码类似股票1 略 } 客户端调用 static void Main(string[] args){ Stock1 gu1 = new Stock1(); Stock2 gu2 = new Stock2(); Stock3 gu3 = new Stock3(); NationalDebt1 nd1 = new NationalDebt1(); Realty1 rt1 = new Realty1(); 股民炒股(续) gu1.Buy(); gu2.Buy(); gu3.Buy(); nd1.Buy(); rt1.Buy(); gu1.Sell(); gu2.Sell(); gu3.Sell(); nd1.Sell(); rt1.Sell(); Console.Read(); } 基民投资基金 基民投资基金(续) 基金类如下: class Fund{ Stock gu1; Stock gu2; Stock gu3; NationalDebt1 nd1; Re
您可能关注的文档
最近下载
- 23G409 先张法预应力混凝土管桩 conv.docx VIP
- WIP.010-SIE EBS标准化操作手册- 按订单装配 (ATO) 制造.pdf VIP
- 2025入团考试100题题库(含答案).pdf VIP
- SG111-1~2:建筑结构加固施工图设计表示方法建筑结构加固施工图设计深度图样(2008合订本).docx VIP
- 最新水利工程维护养护定额标准.docx VIP
- IQ-FMECA软件操作手册—功能与使用.pdf VIP
- WIP.006-SIE EBS标准化操作手册-资源事务处理.pdf VIP
- WIP.009-SIE EBS标准化操作手册-离散任务状态.pdf VIP
- 消防维保质量保证体系.docx VIP
- 2024年四川成都交通投资集团有限公司招聘笔试真题.docx VIP
文档评论(0)