LOGO设计模式(DesignPattern)张凯副教授计算机学院软件工程系武汉科技大学题(Problem)?给银行做个贷款系统?当客户来进行抵押贷款时,有如下几件事情需要确认:?1、到银行子系统查询他是否有足够多的存款?2、到信用子系统查询他是否有良好的信用?3、到贷款子系统查询他有无贷款劣迹?只有这三个子系统都通过时才可进行抵押。武汉科技大学题(Problem)-bank:Bank-credit:Credit-loan:LoanClient+HasSufficientSavings():boolBank+HasGoodCredit():boolCredit+HasNoBadLoans():boolLoan武汉科技大学题(Problem)//lassCustomer{privatestring_name;ustomer(stringname){=name;}publicstringName{get{return_name;}}}武汉科技大学题(Problem)lassBank//银行子系统{publicboolHasSufficientSavings(Customerc,intamount){??????潃獮汯?牗瑩?湩?查询银行信息,客户名+);returntrue;}}lassCredit//信用子系统{publicboolHasGoodCredit(Customerc){??????潃獮汯?牗瑩?湩?查询信用信息,客户名+);returntrue;}}lassLoan//贷款子系统{publicboolHasNoBadLoans(Customerc){??????潃獮汯?牗瑩?湩?查询贷款信息,客户名+);returntrue;}}武汉科技大学题(Problem)staticvoidMain(string[]args){Bankbank=newBank();Loanloan=newLoan();Creditcredit=newCredit();intMoney=12000;??????畃瑳浯牥挠獵潴敭??敮?畃瑳浯牥尨张三);booleligible=true;if(!(customer,Money)){eligible=false;}elseif(!(customer)){eligible=false;}elseif(!(customer)){eligible=false;}??????潃獮汯?牗瑩?湩?客户++已经被尠??汥杩扩敬?尠通过??拒绝));();}可以看到,客户程序与三个子系统都发生了耦合,这种耦合使得客户程序依赖于子系统,当子系统化时,客户程序也将面临很多变化的挑战。武汉科技大学要内容模式动机与定义1模式结构与分析2模式实例与解析3模式效果与应用4武汉科技大学观模式(Facade)?模式动机?模式名称:外观模式(Facade)?将一个系统划分为若干个子系统有利于降低系统的复杂性,一个常见的设计目标是使子系统间的通信和相互依赖关系达到最小,而达到该目标的途径之一就是引入一个外观对象,它为子系统中较一般的设置提供了一个单一而简单的界面。武汉科技大学观模式(Facade)?模式动机?外观模式要求一个子系统的外部与其内部的通信必须通过一个统一的外观(Facade)对象进行。就如同医院的接待员一样,外观模式的外观类将客户端与子系统的内部复杂性分隔开,使得客户端只需要与外观对象打交道,而不需要与子系统内部的很多对象打交道。武汉科技大学观模式(Facade)?模式动机?在没有外观类(Facade)之前,客户类(Client)需要和子系统类(Subsystem)进行复杂的交互,系统的耦合度很大;而增加一个外观类之后,客户类只需要直接和外观类交互,子系统类之间的复杂关系由外观类来实现,从而降低了系统的耦合度。
15设计模式外观模式Facade 课件 来自淘豆网m.daumloan.com转载请标明出处.