首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

门脸模式(Facade Pattern)

2012-09-03 
门面模式(Facade Pattern)门面模式(Facade Pattern):门面模式在我个人感觉就是对使用者提供一个共同的外部

门面模式(Facade Pattern)

门面模式(Facade Pattern):门面模式在我个人感觉就是对使用者提供一个共同的外部调用方法,而把一些比较繁琐,或者使用者不必知道的东西不给使用者知道,换言之就是给你提供一个服务或者方法告诉你能干啥,其他的事情全部由内部程序搞定,在表面上达到统一、简易的操作。

下面举例说明:

现在网上购物已经十分流行了,在网购过程之中,我们首先需要选购商品,将物品添加到购物车,然后填写收货地址信息,最后进行网银付款,每次都要这么做,每次都是同一套流程。

现在假设我们有一个平台的商品都是统一的,质量不会存在啥问题,那么我们设想将网购这一复杂的过程简化,构建一更加简单的系统进行网购。客户主要提供给虚拟货币、收货地址、购买物品,将由我们设想的系统为客户筛选最便宜的物品,填写收货信息,结算、付款,这给客户带来了很大的方便,客户也不必知道自己真正的购物过程,只需要提供相应的信息就可以了。

实际代码如下:

?

网购流程接口:

package j2se.pattern;import java.util.List;/** * 模式化购物 * @author Lyon Yao * */public class ModenNetShopping {private NetShoppingProcess process=new NetShoppingProcessImpl();private Check check=new CheckImpl();public String netShopping(List<Object> toBuy,String address,String post,String name,float yourMoney){String msg="";if(check.checkName(name)){return "so sorry,we can't service for you!";}this.process.chooceGoods(toBuy);this.process.fillInReceiveAddress(address, post, name);float surplus=process.payForGoods(yourMoney);if(surplus==0){msg="your money is just right for your goods!";}else if(surplus<0){msg="your moeny is not enough,please compensate "+Math.abs(surplus)+"RMB";}else {msg="your moeny is so enough,system hava  restituted you "+Math.abs(surplus)+"RMB";}return msg;}}

?这样以来,对于Person来说购物还是和原来一模一样,但结果却不尽相同了。

?

?

?

热点排行