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