一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - 詳解Java設計模式編程中的依賴倒置原則

詳解Java設計模式編程中的依賴倒置原則

2020-03-26 14:11卡奴達摩 JAVA教程

這篇文章主要介紹了詳解Java設計模式中的依賴倒置原則,針對面對對象編程中的抽象的運用,需要的朋友可以參考下

定義:
高層模塊不應該依賴低層模塊,二者都應該依賴其抽象;抽象不應該依賴細節;細節應該依賴抽象。
問題由來:類A直接依賴類B,假如要將類A改為依賴類C,則必須通過修改類A的代碼來達成。這種場景下,類A一般是高層模塊,負責復雜的業務邏輯;類B和類C是低層模塊,負責基本的原子操作;假如修改類A,會給程序帶來不必要的風險。
解決方案:將類A修改為依賴接口I,類B和類C各自實現接口I,類A通過接口I間接與類B或者類C發生聯系,則會大大降低修改類A的幾率。
         依賴倒置原則基于這樣一個事實:相對于細節的多變性,抽象的東西要穩定的多。以抽象為基礎搭建起來的架構比以細節為基礎搭建起來的架構要穩定的多。在java中,抽象指的是接口或者抽象類,細節就是具體的實現類,使用接口或者抽象類的目的是制定好規范和契約,而不去涉及任何具體的操作,把展現細節的任務交給他們的實現類去完成。
         依賴倒置原則的核心思想是面向接口編程,我們依舊用一個例子來說明面向接口編程比相對于面向實現編程好在什么地方。場景是這樣的,母親給孩子講故事,只要給她一本書,她就可以照著書給孩子講故事了。

例子:
違法依賴倒置的情況

?
1
2
3
4
5
6
7
8
9
10
11
public class Student {
  public void read(Book book){
    System.out.println("學生開始閱讀:"+book.getName());
  }
}
 
public class Book {
  public String getName() {
    return "書籍";
  }
}


當學生需要閱讀網頁時,就需要修改Student類,這是很不友好的設計。下面我們看遵守依賴倒置原則的例子。

?
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
public interface Person {
  public void read(Reader reader);
}
 
public interface Reader {
  public String getName();
}
 
public class Student implements Person{
  @Override
  public void read(Reader reader) {
    System.out.println("學生開始閱讀:"+reader.getName());
  }
}
 
public class Book implements Reader {
  public String getName() {
    return "書籍";
  }
}
 
public class Website implements Reader {
  public String getName() {
    return "網頁";
  }
}
 
public class Test {
  public static void main(String[] args) {
    Person student = new Student();
    student.read(new Book());
    student.read(new Website());
  }
}


在read方法中我們使用了接口作為參數。

總結:
1. 每個類最好有接口或者抽象類,或者同時接口和抽象類都有。
2. 變量聲明最好是接口或者抽象類。
3. 繼承時遵守里氏替換原則。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 俺去啦最新地址 | 色悠久久久久综合网小说 | 精品欧美小视频在线观看 | 日本中文字幕黑人借宿影片 | 日韩成本大片35分钟免费播放 | a级免费在线观看 | 精品一区二区三区免费观看 | 亚洲成av人在线视 | 极品手交handjobtattoo | 日韩在线免费播放 | 国产三级跑 | 亚洲国产精品一区二区首页 | 国产精品日本一区二区不卡视频 | 四虎 2022 永久网站 | 成人网中文字幕色 | 国产精品免费久久久久影院小说 | 国内精品视频一区二区三区 | 欧美色图日韩色图 | 国产精品青青青高清在线密亚 | 国产精品极品美女自在线 | 果冻传媒在线免费观看 | 国产欧美二区三区 | 99久久久久国产 | 国产特黄a级在线视频 | 男人疯狂进女人下部视频动漫 | 亚洲欧美在线免费 | 久久中文字幕亚洲精品最新 | 国产99精品免费视频看6 | 九九成人免费视频 | 国产精品久久久久久久午夜片 | 91久久精品视频 | 帅老头恋帅老头同性tv | 边摸边操 | 欧美日韩国产一区二区三区不卡 | 给我视频免费看 | 狐媚小说| 国产日日干 | xxxxyoujizz护士 | 四虎tv| 日本一区二区三区久久精品 | 日本激情在线 |