我是靠谱客的博主 冷傲小熊猫,这篇文章主要介绍大话设计模式之外观模式总结-java实现,现在分享给大家,希望可以做个参考。

注:示例来自《大话设计模式》

现有股民炒股票的代码如下

股票1类

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package Test11; //股票1 public class Stock1 { //卖股票 public void Sell() { System.out.println(" 股票1卖出"); } //买股票 public void Buy() { System.out.println(" 股票1买入"); } }

股票2类

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package Test11; //股票2 public class Stock2 { //卖股票 public void Sell() { System.out.println(" 股票2卖出"); } //买股票 public void Buy() { System.out.println(" 股票2买入"); } }

股票3类

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package Test11; //股票3 public class Stock3 { //卖股票 public void Sell() { System.out.println(" 股票3卖出"); } //买股票 public void Buy() { System.out.println(" 股票3买入"); } }

国债1类

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package Test11; //国债1 public class NationalDebt1 { //卖国债 public void Sell() { System.out.println(" 国债1卖出"); } //买国债 public void Buy() { System.out.println(" 国债1买入"); } }

房地产1类

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package Test11; //房地产1 public class Realty1 { //卖房地产 public void Sell() { System.out.println(" 房产1卖出"); } //买房地产 public void Buy() { System.out.println(" 房产1买入"); } }

客户端代码

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package Test11; public class Program { public static void main(String[] args) { Stock1 gu1 = new Stock1(); Stock2 gu2 = new Stock2(); Stock3 gu3 = new Stock3(); NationalDebt1 nd1 = new NationalDebt1(); Realty1 rt1 = new Realty1(); gu1.Buy(); gu2.Buy(); gu3.Buy(); nd1.Buy(); rt1.Buy(); gu1.Sell(); gu2.Sell(); gu3.Sell(); nd1.Sell(); rt1.Sell(); } }

上面的写法 用户需要了解股票 国债 房产情况 需要参与这些项目的具体买和卖 耦合性很高

下面我们增加一个基金类 它需要了解所有的股票或其他投资方式的方法或属性 进行组合 以备外界调用 代码如下

基金类

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package Test11; public class Fund { Stock1 gu1; Stock2 gu2; Stock3 gu3; NationalDebt1 nd1; Realty1 rt1; public Fund() { gu1 = new Stock1(); gu2 = new Stock2(); gu3 = new Stock3(); nd1 = new NationalDebt1(); rt1 = new Realty1(); } public void BuyFund() { gu1.Buy(); gu2.Buy(); gu3.Buy(); nd1.Buy(); rt1.Buy(); } public void SellFund() { gu1.Sell(); gu2.Sell(); gu3.Sell(); nd1.Sell(); rt1.Sell(); } }

客户端代码

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package Test11; public class Program { public static void main(String[] args) { Fund jijin = new Fund(); jijin.BuyFund(); jijin.SellFund(); } }

此时用户不需要了解股票 甚至可以对股票一无所知 买了基金就回家睡觉 一段时间后再赎回就可以大把数钱 参与股票的具体买卖都由基金公司完成 客户端代码非常简捷明了 这样的写法 基本就是外观模式的基本代码结构了

外观模式 为子系统中的一组接口提供一个一致的界面 此模式定义了一个高层接口 这个接口使得这一子系统更加容易使用

最后

以上就是冷傲小熊猫最近收集整理的关于大话设计模式之外观模式总结-java实现的全部内容,更多相关大话设计模式之外观模式总结-java实现内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(66)

评论列表共有 0 条评论

立即
投稿
返回
顶部