概述
外观模式
股民炒股代码
public class Stock1 {
public void buy() {}
public void sell() {}
}
public class Stock2 {
public void buy() {}
public void sell() {}
}
public class Stock3 {
public void buy() {}
public void sell() {}
}
public class NationalDebt1 {
public void buy() {}
public void sell() {}
}
public class Realty1 {
public void buy() {}
public void sell() {}
}
public class Demo1 {
public static void main(String[] args) {
Stock1 st1=new Stock1();
Stock2 st2 = new Stock2();
Stock3 st3 = new Stock3();
NationalDebt1 nd=new NationalDebt1();
Realty1 re1=new Realty1();
//用户需要了解股票,国债,房地产情况,需要参与这些项目的具体买和卖,耦合性较高
st1.buy();
st2.buy();
st3.buy();
nd.buy();
re1.buy();
st1.sell();
st2.sell();
st3.sell();
nd.sell();
re1.sell();
}
}
投资基金代码
基金将投资者分散的基金集中起来,交由专业的经理人进行管理,投资于股票,外汇,债券等领域,而基金投资的收益归持有投资者所有,管理机构收取一定的托管费用。
//基金类,它需要了解所有股票或其他投资方式的方法和属性,进行组合,以备外界调用
public class Fund {
private Stock1 st1;
private Stock2 st2;
private Stock3 st3;
private NationalDebt1 nd1;
private Realty1 rt1;
public Fund() {
st1=new Stock1();
st2=new Stock2();
st3=new Stock3();
nd1=new NationalDebt1();
rt1=new Realty1();
}
public void buyFund() {
st1.buy();
st2.buy();
st3.buy();
nd1.buy();
rt1.buy();
}
public void sellFund() {
st1.sell();
st2.sell();
st3.sell();
nd1.sell();
rt1.sell();
}
}
public class Demo2 {
public static void main(String[] args) {
//此用户不需要了解股票,甚至可以对股票一无所知。
//参与股票买卖都由基金公司完成。客户端代码简洁明了
Fund fund=new Fund();
fund.buyFund();
fund.sellFund();
}
}
外观模式:为子系统的一组接口提供一个一致的界面,此模式定义了一个高层的接口,这个接口使得这一子系统更加容易使用。(它完美的体现了依赖倒转原则和迪米特法则的思想)
何时使用外观模式:
设计初期阶段:有意识的将不同的两个层分离,比如经典的三层架构,数据访问层和业务逻辑层分离,业务逻辑层和变现层分离;
开发阶段:子系统往往因为不断的重构演化变得越来越复杂,大多数模式在使用时都会产生很多很小的类,这本是好事,但也给外部调用它们的用户程序带来了困难,外观模式可以提供一个简单的接口,减少它们的依赖。
运维大型系统时:可能这个系统已经非常难以维护和扩展了,但是因为它包含非常重要的功能,新的需求开发必须要依赖于它。这时可以为新系统开发一个外观Facade类,为粗糙或高度复杂的遗留代码设计一个简单的接口,让新系统和Facade交互,Facade与遗留代码交互所有复杂的工作。
最后
以上就是愉快月光为你收集整理的外观模式(java实现)外观模式的全部内容,希望文章能够帮你解决外观模式(java实现)外观模式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复