java橋接模式,設計模式(十五)——橋接模式

 2023-10-18 阅读 15 评论 0

摘要:1.描述 ?將橋接部分與他的實現部分分離,是他們都可以獨立的變化。 2.模式的使用 抽象(Abstraction):是一個抽象類,該抽象類含有Implementor的聲明,即維護一個Implementor類型對象。 java橋接模式?實現者(Implementor):實現者是一個接口或

1.描述

?將橋接部分與他的實現部分分離,是他們都可以獨立的變化。

2.模式的使用

·抽象(Abstraction):是一個抽象類,該抽象類含有Implementor的聲明,即維護一個Implementor類型對象。

java橋接模式?·實現者(Implementor):實現者是一個接口或抽象類,該接口(抽象類)中的方法不定與Abstraction類中的方法一致。Implementor接口(抽象類)負責定義基本操作,而Abstraction類負責定義基于這些操作的較高層次操作。

·細化抽象(Refined Abstraction):細化抽象是抽象的一個一個子類,該子類重寫(覆蓋)抽象中的抽象方法時,再給出一些必要操作后,將委托所維護的Implementor類型對象調用相應方法。

·具體實現者(Concrete Implementor):具體實現者是實現(擴展)Implementor接口(抽象類)的類。

3.使用情景

橋接模式的好處、·不想讓抽象和某些重要的實現代碼是固定的綁定關系,這部分實現可在運行時動態實現。

·抽象和實現者都可以繼承的方式獨立地擴展而不受影響,程序運行期間可能需要動態的將一個抽象子類的實例與一個實現者的子類實例進行組合。

·希望對實現者層次代碼的修改對抽象層不產生影響,及即抽象層的代碼不用重新編譯,反之亦然。

4.優點

橋接類型,·橋接模式分離實現與抽象,使抽象和實現可以獨立擴展。

·滿足“開——閉”原則

5.UML

使用橋接模式的代碼??

6案例

中央電視臺有CCTV5和CCTV6,一個負責制作體育節目,一個負責之多電影節目。使用橋接模式將抽象與實現分離。

?

 1 package 橋接模式;
 2 
 3 import java.util.ArrayList;
 4 
 5 public class test1 {
 6 
 7     public static void main(String[] args) {
 8 
 9     }
10 
11 }
12 
13 /*
14  * 抽象
15  */
16 abstract class CCTV{
17     Program programMaker;
18     public abstract void makeProgram();
19 }
20 
21 /*
22  * 實現者
23  */
24 interface Program{
25     public ArrayList<String> makeTVProgram();
26 }
27 
28 /*
29  * 具體實現者
30  */
31 class AthleticProgram implements Program{
32     ArrayList<String> content;
33     AthleticProgram(){
34         this.content = new ArrayList<String>();
35     }
36     public ArrayList<String> makeTVProgram() {
37         content.clear();
38         content.add("巴西足球比賽");
39         content.add("比賽結束");
40         return content;
41     }
42     
43 }
44 
45 /*
46  * 具體實現者
47  */
48 class FilmProgram implements Program{
49     ArrayList<String> content;
50     FilmProgram(){
51         this.content = new ArrayList<String>();
52     }
53     public ArrayList<String> makeTVProgram() {
54         content.clear();
55         content.add("肖申克的救贖");
56         return content;
57     }
58     
59 }
60 
61 /*
62  * 細化抽象
63  */
64 class CCTV5 extends CCTV{
65     ArrayList<String> content;
66     CCTV5(Program programMaker){
67         this.programMaker = programMaker;
68         this.content = new ArrayList<String>();
69     }
70     @Override
71     public void makeProgram() {
72         content = programMaker.makeTVProgram();
73         
74     }
75     
76 }

組合設計模式、?

大概就是這么個意思,不運行了。

和策略模式思想相近。

?

橋接模式代碼,轉載于:https://www.cnblogs.com/cxy2016/p/7670312.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/150244.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息