设计模式之外观模式

外观模式:为子系统中的一组接口提供一个一致的界面,定义一个高层接口,这个接口使得这个子系统更加容易使用
个人理解:高层次的封装,客户端要实现某一功能,只需要调用一个高层次的接口而不必关心里面调了哪些接口,可以实现客户端与子系统内部接口的解耦。此外高层次的封装将不影响低层次的直接调用。

如果还是不能理解,那么想想股票与基金的区别(这里假设该基金恰好只持有这三支股票):


买股票:每个人买多只股票,直接操作每只股票的买入卖出,需要时刻注意每只股票的涨跌,耦合较大,操作较为繁琐
买基金:每个人只需要买一只基金,由基金公司负责股票的买入卖出,而人只需要关注这只基金的涨跌,对基金的操作间接完成了对所有股票的操作。耦合较低,操作简洁。此外买基金对买股票不造成影响,若有人只是想买一只股票,仍可直接购买某一具体股票
下面为代码实现(为了简洁易懂,这里只出现了实现类):
1.阿里股票
public class AliStock{
   public void byAliStock(){
       System.out.println("买入阿里股票");
   }
   public void saleAliStock(){
       System.out.println("卖出阿里股票");
   }
}
2.腾讯股票
public class TencentStock {
    public void byTencentStock(){
        System.out.println("买入腾讯股票");
    }
    public void saleTencentStock(){
        System.out.println("卖出腾讯股票");
    }
}
3.百度股票
public class BaiduStock {
    public void byBaiduStock(){
        System.out.println("买入百度股票");
    }
    public void saleBaiduStock(){
        System.out.println("卖出百度股票");
    }
}
4.基金
public class Fund {
    private AliStock ali=new AliStock();
    private TencentStock tencent=new TencentStock();
    private BaiduStock baidu=new BaiduStock();
    public void buyFund(){
        ali.byAliStock();
        tencent.byTencentStock();
        baidu.byBaiduStock();
    }
    public void saleFund(){
        ali.saleAliStock();
        tencent.saleTencentStock();
        baidu.saleBaiduStock();
    }
}
5.人(测试类)
public class People {
    public static void main(){
        //买股票
        AliStock ali=new AliStock();
        TencentStock tencent=new TencentStock();
        BaiduStock baidu=new BaiduStock();
        ali.byAliStock();;
        tencent.byTencentStock();
        baidu.byBaiduStock();
        //卖股票
        ali.saleAliStock();
        tencent.saleTencentStock();
        baidu.saleBaiduStock();
        //买基金(间接买股票)
        Fund fund=new Fund();
        fund.buyFund();
       //卖基金(间接卖股票)
        fund.saleFund();
    }
}
外观模式在规模较大的系统或网站中是很常见的,很适合提供高层次的业务服务,在具体的外观设计中尽量不掺杂额外功能,不返回低层次的组件服务给客户端






  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值