JAVA设计模式-Facade

    Facade模式翻译成零售商模式我想更加容易理解。当你想要买一块香皂的的时候,你肯定不会去香皂厂买,而是去超市买,同样,买衣服买手机都不会去厂家,而是去零售商家。我想用代码来解释会更加容易:

   

    首先是不用门面模式来买这些东西:

 

   

 

    上面的代码里面,我们必须直接和生产者打交道,这样会很麻烦,我们需要一个统一的接口,可以得到所有这些东西,那么就用到了facade模式,下面就是用fadace模式实现的代码:

 

   

 

    在这里,我们想要得到各种商品,只需要和Store这个类打交道就行了,不需要直接和厂家联系,降低了客户端代码和生产者之间的耦合,当生产者发生变化的时候,只需要更改Store这个类,而不必改客户端。举一个大家可能会经常用到的例子吧,数据库连接,现在数据库厂商非常多,比如oracle,sqlserver,mysql等等,当我们想要一个数据库连接对象的时候,需要进行一系列操作,客户端希望告诉一个类用户名,密码,url和数据库厂商,就直接返回一个数据库连接对象,那么就可以使用fadace模式,这个模式中的Store的形式如下:

 

   

 

    这样做的好处就是隐藏了数据库连接操作的细节,用户只关心自己的业务逻辑就行了,数据库连接这些与业务逻辑无关的操作就让其它类来做就行了。

   

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值