ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

设计模式之 外观模式

2021-01-23 13:04:26  阅读:108  来源: 互联网

标签:外观 void System 模式 class println 设计模式 public out


0x01:外观模式简介

外观模式(又称门面模式),通过外观的包装,使应用程序只能看到外观对象,而不会看到具体的细节对象,这样无疑会降低应用程序的复杂度,并且提高了程序的可维护性。UML类图如下:
在这里插入图片描述

其中Facade是外观角色,也叫门面角色,客户端可以调用这个角色的方法,此角色知晓子系统的所有功能和责任,将客户端的请求代理给适当的子系统对象;

Subsystem是子系统角色,可以同时拥有一个或多个子系统,每一个子系统都不是一个单独的类,而是一个类的集合,子系统并不知道门面的存在。

0x02:外观模式的实现

定义子系统Subsystem

public class SubSystemA {

    public void dosomethingA() {
        System.out.println("SubSystemA dosomethingA");
    }

}

public class SubSystemB {

    public void dosomethingB() {
        System.out.println("SubSystemB dosomethingB");
    }

}

外观角色Facade

public class Facade {

    //被委托的对象
    private SubSystemA a;

    private SubSystemB b;

    public Facade() {
        a = new SubSystemA();
        b = new SubSystemB();
    }

    //提供给外部访问的方法
    public void methodA() {
        this.a.dosomethingA();
    }

    public void methodB() {
        this.b.dosomethingB();
    }

}

测试代码

public class Client {

    public static void main(String[] args) {
        Facade facade = new Facade();

        facade.methodA();
        facade.methodB();
    }

}

0x03:应用

因为程序员薪资普遍相对较高,所以一般有些小钱。那如何进行财富管理呢?自己购买股票呢?又不能很好的掌握买卖点,经常被人割韭菜。那还有什么管理财富的渠道吗?购买基金就是一个不错的渠道。

股票、国债、期货类

public class Stock{

    //买股票
    public void buy() {
        System.out.println("股票1买入");
    }

    //卖股票
    public void sell() {
        System.out.println("股票1卖出");
    }

}

public class NationalDebt{

    //买国债
    public void buy() {
        System.out.println("国债1买入");
    }

    //卖国债
    public void sell() {
        System.out.println("国债1卖出");
    }

}

public class Futures{

    //买期货
    public void buy() {
        System.out.println("期货1买入");
    }

    //卖期货
    public void sell() {
        System.out.println("期货1卖出");
    }

}

基金类

基金经理人通过该类作为中间交互者,可以接受投资者的资金,统一对股票、国债、期货进行购买和赎回操作。

public class Fund {

    private Stock stock;

    private NationalDebt nationalDebt;

    private Futures futures;

    public Fund() {
        stock = new Stock(); //配置30%
        nationalDebt = new NationalDebt(); //配置60%
        futures = new Futures(); //配置20%
    }

    //购买基金
    public void buyFund() {
        stock.buy();
        nationalDebt.buy();
        futures.buy();
    }

    //赎回基金
    public void sellFund() {
        stock.sell();
        nationalDebt.sell();
        futures.sell();
    }

}

上面这是一个基金,它配置了30%的股票+60%的国债+20%期货。

程序员购买和赎回基金操作

public class Client {

    public static void main(String[] args) {
        Fund fund = new Fund();
        //基金购买
        fund.buyFund();
        System.out.println("》》》》》》》》》》》》");
        //基金赎回
        fund.sellFund();
    }

}

这样的话,再也不怕炒股被割韭菜了。

标签:外观,void,System,模式,class,println,设计模式,public,out
来源: https://www.cnblogs.com/happyhuangjinjin/p/14317281.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有