乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      設(shè)計模式——類圖以及類與類之間的關(guān)系

       jiffes 2019-02-13

          設(shè)計模式在程序設(shè)計上有著很重要的作用,使用設(shè)計模式可以使得代碼更容易被理解,使得代碼更規(guī)范,真正實現(xiàn)工程化。

      一、用UML表示一個類


      類圖一般是三行的結(jié)構(gòu):

      1. 類名稱
      2. 屬性:格式(可見性 名稱:類型[=缺省值])
      3. 方法:格式(可見性 名稱(參數(shù)列表)[返回類型])
      注:在Visio中的畫的類圖中使用的是C#的數(shù)據(jù)類型,與Java的略有差別。

      二、類與類之間的關(guān)系

      類與類之間主要有6種關(guān)系,包括依賴,關(guān)聯(lián),聚合,組合,繼承,實現(xiàn)。他們的耦合度是一次增強的。

      1、依賴(Dependency)

          依賴主要體現(xiàn)了一種使用關(guān)系,兩個相對獨立的對象,當(dāng)一個對象負責(zé)構(gòu)造另一個對象的實例,或者依賴另一個對象的服務(wù)時,主要體現(xiàn)為依賴關(guān)系。

          依賴關(guān)系主要有3種表現(xiàn)形式:(以類A中使用了類B為例)

      1. 類B是作為類A的方法參數(shù)
      2. 類B是類A的方法中的局部變量
      3. 在類A中調(diào)用類B的靜態(tài)方法

      在依賴中使用的是“虛線+箭頭”。

      1. public class Student {
      2. public void read(Book book){
      3. System.out.println("讀的書是:" + book.getName());
      4. }
      5. public void eat(Food food){
      6. System.out.println("吃的是:" + food.getName());
      7. }
      8. }


      2、關(guān)聯(lián)(Association)

      關(guān)聯(lián)主要體現(xiàn)的是一種對應(yīng)關(guān)系,兩個相對獨立的對象,當(dāng)一個對象的實例與另一個對象的實例存在固定的對應(yīng)關(guān)系時,這兩個對象之間為關(guān)聯(lián)關(guān)系。通常是將一個類的對象作為另一個類的成員變量。

      關(guān)聯(lián)關(guān)系的分類:

      1. 單向關(guān)聯(lián)
      2. 雙向關(guān)聯(lián)

      (單向關(guān)聯(lián))


      (雙向關(guān)聯(lián))

      1. public class Student{
      2. private String id;
      3. private ClassName className;
      4. public Student(String id){
      5. this.id = id;
      6. this.className = new ClassName();
      7. }
      8. }


      3、聚合(Aggregation)

      聚合是關(guān)聯(lián)關(guān)系的一種,表現(xiàn)了一種弱的“擁有”關(guān)系,關(guān)聯(lián)關(guān)系的對象之間是相互獨立的,但是聚合關(guān)系的對象之間存在著一種包容關(guān)系,體現(xiàn)的是A對象可以包容B對象,但是B對象不是A對象的一部分。他們之間是“整體-個體”的關(guān)系。


      成員對象通常作為構(gòu)造方法、Setter方法或業(yè)務(wù)方法的參數(shù)注入到整體對象中。

      1. public class People{
      2. private Student student;
      3. private Worker worker;
      4. private Farmer farmer;
      5. public People(Student student, Worker worker, Farmer farmer){
      6. this.student = student;
      7. this.worker = worker;
      8. this.farmer = farmer;
      9. }
      10. }


      4、組合(Composition)

          組合是一種強的“擁有”關(guān)系,組合中的類之間是“整體-部分”的關(guān)系,“整體”負責(zé)“部分”的生命周期,“部分”和“整體”的生命周期是一樣的,“部分”單獨存在是沒有任何意義的。通常在整體類的構(gòu)造方法中直接實例化成員類。


      1. public class Bird{
      2. private Wing wing;
      3. public People(){
      4. wing = new Wing();
      5. }


      5、繼承(Generalization)

         繼承表示的是類與類之間或者接口與接口之間的父子關(guān)系,在java中使用的是extends關(guān)鍵字。


      1. public class Bird extends Animal{
      2. }


      6、實現(xiàn)(Implementation)

         實現(xiàn)表示的是一個類實現(xiàn)一個或者多個接口,在java中使用的是implements關(guān)鍵字。


      1. public class Bird implements Animal{
      2. }



      參考文獻

      1. 深入淺出UML類圖(http://www./oobject/201211231.asp)
      2. 設(shè)計模式中類的關(guān)系(http://blog.csdn.net/zhengzhb/article/details/7187278)

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多