博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【设计模式】牛市股票还会亏钱 --- 外观模式
阅读量:7062 次
发布时间:2019-06-28

本文共 2904 字,大约阅读时间需要 9 分钟。

一,概述

       外观模式是软件工程中常用的一种软件设计模式。它为子系统中的一组接口提供一个统一的高层接口。使用子系统更容易使用。

二,例如

        股民买股票,大部分散户自己买股票、国债、房地产,然后到时机抛售。这样就要求每个股民对每支股票都和了解才能保证赚钱,就是说每个股民都要跟一大堆股票打交道。

        而更加优化的方法是,股民将钱交给专业的理财机构,定期获利达到双赢。这样股民只需要跟理财机构打交道即可。就是所谓的把一组股票通过理财机构这一个统一的接口调用。

 

1)单个股民投资基金代码

#include 
using namespace std; //股票1class Stock1{public: //卖股票 void Sell() { cout<<" 股票1卖出"<
Buy(); gu2->Buy(); gu3->Buy(); nd1->Buy(); rt1->Buy(); gu1->Sell(); gu2->Sell(); gu3->Sell(); nd1->Sell(); rt1->Sell(); }

2)有了理财机构投资(外观模式)

       Fund资金管理类,直接管理股票的买卖,股民只需要调用资金管理类的买进、卖出就可以了。大大简化了股民理财负担。

#include 
using namespace std; //股票1 class Stock1 { public: //卖股票 void Sell() { cout<<" 股票1卖出"<
Buy(); gu2->Buy(); gu3->Buy(); nd1->Buy(); rt1->Buy(); } void SellFund() { gu1->Sell(); gu2->Sell(); gu3->Sell(); nd1->Sell(); rt1->Sell(); } }; int main(){ Fund *jijin = new Fund(); jijin->BuyFund(); jijin->SellFund();}

三,外观模式总结(C#)

class SubSystemOne    {        public void MethodOne()        {            Console.WriteLine(" 子系统方法一");        }    }    class SubSystemTwo    {        public void MethodTwo()        {            Console.WriteLine(" 子系统方法二");        }    }    class SubSystemThree    {        public void MethodThree()        {            Console.WriteLine(" 子系统方法三");        }    }    class SubSystemFour    {        public void MethodFour()        {            Console.WriteLine(" 子系统方法四");        }    }    class Facade    {        SubSystemOne one;        SubSystemTwo two;        SubSystemThree three;        SubSystemFour four;        public Facade()        {            one = new SubSystemOne();            two = new SubSystemTwo();            three = new SubSystemThree();            four = new SubSystemFour();        }        public void MethodA()        {            Console.WriteLine("\n方法组A() ---- ");            one.MethodOne();            two.MethodTwo();            four.MethodFour();        }        public void MethodB()        {            Console.WriteLine("\n方法组B() ---- ");            two.MethodTwo();            three.MethodThree();        }    }int main(){            Facade facade = new Facade();            facade.MethodA();            facade.MethodB();}

四,何时使用外观模式

 

      1.在设计阶段初期,要有意识的将不同的两个层分离,比如经典的三层架构,就需要考虑在数据访问层和业务逻辑层、业务逻辑层和表示层的层与层之间建立外观Facade,这样可以为复杂的子系统提供一个简单的接口,使得耦合大大降低。

      2.在开发阶段,子系统往往因为不断的重构演化而变得越来越复杂。增加外观Facade可以提供一个简单的接口,减少它们之间的依赖

      3.在维护一个遗留的大型系统时,可能这个系统已经非常难以维护和扩展了,可以为新系统开发一个外观Facade类,来提供设计粗糙或高度复杂的遗留代码的比较清晰简单的接口,让新系统与Facade对象交互,Facade与遗留代码交互所有复杂的工作。

 

转载于:https://www.cnblogs.com/secbook/archive/2012/06/28/2654981.html

你可能感兴趣的文章
Redis5.0客户端redis-cli管理cluster尝试
查看>>
21231231
查看>>
Unix下find 的用法
查看>>
Oracle物化视图操作示例
查看>>
个性化U盘,教你如何设置U盘图标和背景
查看>>
JavaScript单元测试系列二:将Jasmine集成到JsTestDriver
查看>>
电话号码标记查询服务搭建
查看>>
Linux----精简版---运维师必备
查看>>
NB的map--快速添加map(key,value)
查看>>
C#WinForm窗体之间的相互操作
查看>>
存储虚拟化的三种结构划分
查看>>
gitlab的用户使用手册
查看>>
Linux软件包管理{rpm|yum|源码包}2015082901
查看>>
SQL Server2008R2安装
查看>>
如何下载在线视频:流行视频FLV下载
查看>>
杭电 hdu 2016
查看>>
常见Java开源JMS消息中间件及特性简介
查看>>
java-web项目跨域的问题
查看>>
linux下网桥的设置
查看>>
模块和包
查看>>