Facade 模式
来源:互联网 发布:java异常机制 编辑:程序博客网 时间:2024/06/07 12:07
考虑您要撰写一个WebMail程式,您手上已经有一些已经开发好的元件(Component),像是开发WebMail所需要的SMTP处理类、允许上传附档的FileUpload类,以及Web安全相关的API、其它相关的Package等等。
当您拿到一些现成的元件,并打算在您的应用程式中使用它们的话,您不应该直接将这些元件耦合至您的应用程式上,例如:
上面的作法会让您的应用程式直接与多个元件耦合,这种作法不但与元件的依赖度高,日后要修改应用程式本身,或是更换掉依赖的元件都有困难。
您应该定义一个Facade介面,在当中定义好商务逻辑,例如寄送附件档案的方法(method),然后在一个实现类中,组合您手边的元件,使其达成您所希望的商务行为,例如:
如上图所示的,您的应用程式本身将不直接依赖于您的元件,而是依赖一个介面,当您想要更改某个商务行为的实作时,只要修改实现的类就可以了,应用程式本身不用作任何修改。
Facade模式的结构如下:
Facade模式隐藏了各个元件之间的合作行为,以及元件本身的操作与设定细节,固而必失去了一些直接操作元件的方便性,所以对于喜欢追求与操作细节的程式设计人员而言,不会很喜欢透过Facade来操作背后的元件,所以您的Facade介面设计,通常要在元件依赖性及元件的支接操作性之间作个平衡。
当您拿到一些现成的元件,并打算在您的应用程式中使用它们的话,您不应该直接将这些元件耦合至您的应用程式上,例如:
上面的作法会让您的应用程式直接与多个元件耦合,这种作法不但与元件的依赖度高,日后要修改应用程式本身,或是更换掉依赖的元件都有困难。
您应该定义一个Facade介面,在当中定义好商务逻辑,例如寄送附件档案的方法(method),然后在一个实现类中,组合您手边的元件,使其达成您所希望的商务行为,例如:
如上图所示的,您的应用程式本身将不直接依赖于您的元件,而是依赖一个介面,当您想要更改某个商务行为的实作时,只要修改实现的类就可以了,应用程式本身不用作任何修改。
Facade模式的结构如下:
Facade模式隐藏了各个元件之间的合作行为,以及元件本身的操作与设定细节,固而必失去了一些直接操作元件的方便性,所以对于喜欢追求与操作细节的程式设计人员而言,不会很喜欢透过Facade来操作背后的元件,所以您的Facade介面设计,通常要在元件依赖性及元件的支接操作性之间作个平衡。
- Facade模式
- Facade模式
- Facade模式
- Facade模式
- Facade模式
- Facade模式
- -facade模式
- Facade 模式
- FACADE 模式
- Facade模式
- Facade模式
- Facade模式
- Facade模式
- facade 模式
- facade模式
- Facade模式
- Facade 模式
- Facade模式
- Excel SendMail
- Silverlight 利用Telerik上传文件
- Attach和Detach的简单说明
- 图--单源最短路径 -Bellman Ford 算法(可以存在负权边的情况和负权回路)算法导论p362
- getAttribute()和getParameter()的区别(一)
- Facade 模式
- PHP下载文件(二)
- java中对flush()的理解
- 元数据和反射
- 网上绝无仅有的android Log分析教程及例子
- Java学习的30个目标
- Android SDCard操作详解
- Java基础 三步学会Java Socket编程(一)
- Java基础 三步学会Java Socket编程(二)