设计模式——外观模式

场景:股票&基金
基金将投资者分散的资金集中起来,交由专业的经理人进行管理,投于股票、债券、外汇等领域,而基金投资的收益归持有投资者所有,管理机构收取一定比例的托管管理费用。
基金会买几十支好的股票,不会因为某个股票的大跌而影响收益,尽管每个人的钱不多,但大家放在一起,反而会达到好的投资效果。

股民炒股代码:
在这里插入图片描述
股票1:

package Facade;

public class Stock1 {
    public void sell(){
        System.out.println("股票1卖出");
    }
    public void buy(){
        System.out.println("股票1买入");
    }
}

股票2、股票3类似

客户端:

package Facade;

public class Main {
    private Stock2 s2;

    public static void main(String[] args) {
        Stock1 s1 = new Stock1();
        Stock2 s2 = new Stock2();
        Stock3 s3 = new Stock3();

        s1.buy();
        s2.buy();
        s3.buy();

        s1.sell();
        s2.sell();
        s3.sell();
    }
}

在这里插入图片描述
投资基金代码:
在这里插入图片描述
基金类:

package Facade2;

public class Fund {
    Stock1 s1;
    Stock2 s2;
    Stock3 s3;
    public Fund(){
        s1 = new Stock1();
        s2 = new Stock2();
        s3 = new Stock3();
    }
    public void buyfund(){
        s1.buy();
        s2.buy();
        s3.buy();
    }
    public void sellfund(){
        s1.sell();
        s2.sell();
        s3.sell();
    }
}

客户端:

package Facade2;

public class Main {
    public static void main(String[] args) {
        Fund jijin = new Fund();
        jijin.buyfund();
        jijin.sellfund();
    }
}

外观模式:
为子系统的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
在这里插入图片描述
三个子系统的类:

package Facade3;
public class sub1 {
    public void method1(){
        System.out.println("子系统方法1");
    }
}

package Facade3;

public class sub2 {
    public void method1(){
        System.out.println("子系统方法2");
    }
}

package Facade3;

public class sub3 {
    public void method1(){
        System.out.println("子系统方法3");
    }
}

外观类:

package Facade3;

public class Facade {
    sub1 s1;
    sub2 s2;
    sub3 s3;
    
    public Facade(){
        s1 = new sub1();
        s2 = new sub2();
        s3 = new sub3();
    }
    
    public void method1(){
        s1.method1();
        s2.method1();
        s3.method1();
    }
    
}

package Facade3;

public class main {
    public static void main(String[] args) {
        //由于Facade的作用,客户端根本不知道三个子系统类的存在
        Facade f = new Facade();
        f.method1();
    }
}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值