设计模式之门面模式
来源:互联网 发布:方正细金陵简体 mac 编辑:程序博客网 时间:2024/04/28 04:05
门面模式,就是将一些复杂的小系统整合起来,为用户的使用提供一个简单的接口,统一一个高层接口给用户使用,打个比方,电视的按钮就是一个门面模式,因为我们换台只需要拧按钮,而不必关心电视机里面经历了哪些过程。
现在我用一个邮局递信的例子来说明问题:
我现在定义的邮局和现实中的邮局有些差别,假设有这样一个邮局,当我们想发信时,我们只需要提供信的内容和地址,其他的都由邮局来做。
那么先定义写信流程的接口:
public interface LetterWriter{//写信的内容public void writeContent(String content);//写信的地址public void writeAddress(String address);//将信放入信封public void inMailer();//寄信public void sendMail();}
实现这个接口:
public class LetterWriterImpl implements LetterWriter{@Overridepublic void inMailer(){// TODO Auto-generated method stubSystem.out.println("放入信封");}@Overridepublic void sendMail(){// TODO Auto-generated method stubSystem.out.println("发信");}@Overridepublic void writeAddress(String address){// TODO Auto-generated method stubSystem.out.println("写地址:"+address);}@Overridepublic void writeContent(String content){// TODO Auto-generated method stubSystem.out.println("写内容:"+content);}}
现在还没有邮局,那么如果用户想发信,必须经历如下过程
public static void main(String[] args){LetterWriter writer=new LetterWriterImpl();writer.writeContent("我是袁泽瑶");writer.writeAddress("湖北省武汉市武汉理工大学鉴湖校区");writer.inMailer();writer.sendMail();}
现在在附近有一个邮局成立了:帮你完成写信,写地址,装进信封,发信,你只需要提供内容和地址即可
public class PostOffice{private LetterWriter writer=new LetterWriterImpl();//发送邮件public void Send(String address,String content){writer.writeContent(content);writer.writeAddress(address);writer.inMailer();writer.sendMail();}}
那么此时如果一个用户想发信:非常简单
public static void main(String[] args){PostOffice office=new PostOffice();office.Send("Hello","Good");}
- 设计模式之门面模式
- 设计模式之门面模式
- 设计模式之门面模式
- 设计模式之门面模式
- 设计模式之-门面模式
- 设计模式之门面模式
- 设计模式之门面模式
- 设计模式之门面模式
- 设计模式之门面模式
- 设计模式之门面模式
- 设计模式之门面模式
- 设计模式之门面模式
- 设计模式之门面模式
- 设计模式之门面模式
- 设计模式之门面模式
- 设计模式之门面模式
- 设计模式之门面模式
- 设计模式之:门面模式
- Proe笔记1
- iOS基于百度地图的开发(5)——核心问题汇总
- GDB 命令详细解释【转】
- myeclipse10.0的svn离线安装(link方式)
- 项目经理和产品经理的核心区别是什么?
- 设计模式之门面模式
- 如何加密并发布android程序
- C++Vector用法
- 【KMP】 hdu4300 Clairewd’s message
- 浅谈Android五大布局(二)——RelativeLayout和TableLayout(配以小例子:代码+图)
- Scala学习笔记(六) - 操作符与字面量
- EM 无法登录——java.lang.Exception Exception in sending Request null错误(附EM介绍及改动IP地址重新创建资料库步骤)
- LINQ to SQL语句(24)之视图
- 给初学者之一:浅谈java及应用