国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|JavaScript|易語(yǔ)言|

服務(wù)器之家 - 編程語(yǔ)言 - JAVA教程 - 高內(nèi)聚低耦合法則實(shí)例解析

高內(nèi)聚低耦合法則實(shí)例解析

2021-03-11 13:54佳.Zip JAVA教程

這篇文章主要介紹了高內(nèi)聚低耦合法則實(shí)例代碼解析,具有一定借鑒價(jià)值,需要的朋友可以參考下。

定義:一個(gè)對(duì)象應(yīng)該對(duì)其他對(duì)象保持最少的了解。

問(wèn)題由來(lái):類與類之間的關(guān)系越來(lái)越密切,耦合度越來(lái)越大,當(dāng)一個(gè)類發(fā)生改變時(shí),對(duì)另外一個(gè)類的影響也越大.

解決方案:盡量降低類與類之間的耦合.

自從我們接觸到編程開始,就知道了軟件設(shè)計(jì)的總的原則,低耦合,高內(nèi)聚,無(wú)論是面向?qū)ο蠡蛘呙嫦蜻^(guò)程,耦合度盡量低,才能提高代碼的復(fù)用率。但是編程怎么編程低耦合呢?

無(wú)論邏輯怎么復(fù)雜,對(duì)于依賴的類來(lái)說(shuō),都盡量將邏輯封裝在類的內(nèi)部,對(duì)外除了提供的public方法,不對(duì)外泄露任何信息。還有一個(gè)更加簡(jiǎn)單的定義:只與直接的朋友通信。首先解釋一下什么是直接的朋友;每個(gè)對(duì)象都會(huì)與其他對(duì)象發(fā)生耦合關(guān)系,我們就說(shuō)這兩個(gè)對(duì)象之間有耦合關(guān)系,我們就說(shuō)這兩個(gè)對(duì)象有朋友關(guān)系,耦合發(fā)生的方式有很多,依賴,關(guān)聯(lián),組合,聚合等等。其中,我們稱出現(xiàn)成員變量,方法參數(shù),方法返回值的類稱為直接的朋友,而出現(xiàn)在局部變量中的類為不是直接的朋友,也就是說(shuō),陌生的類最好不要作為局部變量的形式出現(xiàn)在類的內(nèi)部;

舉一個(gè)例子,在一所學(xué)校,里面有老師若干名,依次編號(hào)。下面有學(xué)生若干名,一次編號(hào)。現(xiàn)在要求打印出所有的老師和學(xué)生的ID.

先來(lái)違反低耦合高內(nèi)聚原則

代碼如下。

java" id="highlighter_609286">
?
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package test1;
import java.util.ArrayList;
import java.util.List;
class Teacher{
    privateString id;
    publicvoidsetId(String id)
     {
        this.id=id;
    }
    publicString getId()
     {
        return id;
    }
}
class Student{
    private String id;
    public void setId(String id)
     {
        this.id=id;
    }
    public String getId()
     {
        return id;
    }
}
class StudentManage{
    publicList<Student> getAllStudent()
     {
        List<Student> list=newArrayList<Student>();
        for (int i=0;i<100;i++)
          {
            Student student=new Student();
            student.setId("學(xué)生學(xué)號(hào)是"+i);
            list.add(student);
        }
        return list;
    }
}
class TeacherManage
{
    publicList<Teacher> getAllTeacher()
     {
        List<Teacher> list=newArrayList<Teacher>();
        for (inti=0;i<100;i++)
         {
            Teacher teacher =new Teacher();
            teacher.setId("老師編號(hào)"+i);
            list.add(teacher);
        }
        return list;
    }
    public void printAllPerson(StudentManagestudentmanager)
     {
        List<Student>list1=studentmanager.getAllStudent();
        for (Student s:list1)
          {
            System.out.println(s.getId());
        }
        List<Teacher>list2=this.getAllTeacher();
        for (Teacher t:list2)
          {
            System.out.println(t.getId());
        }
    }
}
?
1
2
3
4
5
6
public classClient {
    publicstaticvoidmain(String[] args) {
        TeacherManagetm=newTeacherManage();
        tm.printAllPerson(new StudentManage());
    }
}

現(xiàn)在這個(gè)設(shè)計(jì)的主要問(wèn)題出現(xiàn)在TeacherManage類中,根據(jù)低耦合高內(nèi)聚法則,只與直接的朋友進(jìn)行通信,而Student類并不是TeacherManage類中的直接朋友,應(yīng)避免類中出現(xiàn)這樣非直接朋友關(guān)系的耦合。

修改之后代碼如下:

?
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
package test2;
import java.util.ArrayList;
import java.util.List;
class Teacher{
    privateString id;
    publicvoidsetId(String id)
     {
        this.id=id;
    }
    publicString getId()
     {
        return id;
    }
}
class Student{
    private String id;
    public void setId(String id)
     {
        this.id=id;
    }
    public String getId()
     {
        return id;
    }
}
class StudentManage{
    publicList<Student> getAllStudent()
     {
        List<Student> list=newArrayList<Student>();
        for (int i=0;i<100;i++)
          {
            Student student=new Student();
            student.setId("學(xué)生學(xué)號(hào)是"+i);
            list.add(student);
        }
        return list;
    }
    public void printAllStudent()
     {
        List<Student>list1=this.getAllStudent();
        for (Student s:list1)
          {
            System.out.println(s.getId());
        }
    }
}
class TeacherManage
{
    publicList<Teacher> getAllTeacher()
     {
        List<Teacher> list=newArrayList<Teacher>();
        for (inti=0;i<100;i++)
         {
            Teacher teacher =new Teacher();
            teacher.setId("老師編號(hào)"+i);
            list.add(teacher);
        }
        return list;
    }
    publicvoidprintAllTeacher()
     {
        List<Teacher> list2=this.getAllTeacher();
        for (Teacher t:list2)
          {
            System.out.println(t.getId());
        }
    }
}
public classClient {
    publicstaticvoidmain(String[] args) {
        TeacherManagetm=newTeacherManage();
        tm.printAllTeacher();
        StudentManagesm=newStudentManage();
        sm.printAllStudent();
    }
}

修改后,學(xué)生新增加了學(xué)生ID的方法,老師直接來(lái)調(diào)用即可。從而避免了與學(xué)生發(fā)生耦合。低耦合高內(nèi)聚原則的初衷是降低了類之間的耦合,由于每個(gè)類減少了不必要的依賴,因此的確可以降低耦合關(guān)系,但是凡事有個(gè)度,雖然可以避免與非直接的類通信,但是要通信,必然會(huì)通過(guò)一個(gè)“中介”來(lái)發(fā)生關(guān)系。采用此法則可以做到結(jié)構(gòu)清晰,高內(nèi)聚低耦合、

耦合性與內(nèi)聚性是模塊獨(dú)立性的兩個(gè)定性標(biāo)準(zhǔn),將軟件系統(tǒng)劃分模塊時(shí),盡量做到高內(nèi)聚低耦合,提高模塊的獨(dú)立性,為設(shè)計(jì)高質(zhì)量的軟件結(jié)構(gòu)奠定基礎(chǔ)。

有個(gè)例子很容易明白:一個(gè)程序有50個(gè)函數(shù),這個(gè)程序執(zhí)行得非常好;然而一旦你修改其中一個(gè)函數(shù),其他49個(gè)函數(shù)都需要做修改,這就是高耦合的后果。

總結(jié)

以上就是本文關(guān)于高內(nèi)聚低耦合法則實(shí)例代碼解析的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!

原文鏈接:http://blog.csdn.net/lijia503102319/article/details/50259835

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 亚洲欧美激情视频 | 激情综合婷婷 | 亚洲综合中文 | 中国性bbwbbwbbwbbw | 国产视频二 | 99爱精品在线 | 综合视频一区 | 亚洲电影在线 | 免费国产视频 | 精品国产乱码久久久久久久软件 | 午夜电影网 | 在线观看的av | 亚洲午夜网 | 色婷婷综合久久久中字幕精品久久 | 国产欧美综合一区二区三区 | 欧美国产综合 | 少妇精品视频在线观看 | 国产精品精品视频 | 亚洲午夜精品毛片成人播放器 | 97超碰青青草 | 含羞草www国产在线视频 | 日韩视频专区 | 99精品欧美一区二区蜜桃免费 | av超碰 | 亚洲精品电影在线观看 | 超碰首页| 欧美亚洲 | 黄色国产大片 | 国产精品一区二区三 | 亚洲人体视频 | 欧美电影免费网站 | 玖玖操| 中文在线√天堂 | 日韩福利在线 | 日韩中文在线 | 欧美乱大交xxxxx春色视频 | 国产综合视频 | 久操视频免费在线观看 | 久久国产精品久久久久久电车 | 久久噜噜噜精品国产亚洲综合 | 欧美视频在线一区 |