1. 程式人生 > >依賴/泛化/關聯/實現/聚合/組合的C#實現

依賴/泛化/關聯/實現/聚合/組合的C#實現

 泛化(Generalization)

     所謂的泛化就是我們最常用的繼承關係

image

   1:      public class Employee
   2:      {
   3:          
   4:      }
   5:      public class SaleEmployee:Employee
   6:      {
   7:          
   8:      }
  • 依賴(Dependency)

依賴關係是指一個類對別一個類的依賴,比如說Employee類中有一個方法叫做TakeMoney(Bank bank)這個方法,在這個方法的引數中用到了Bank這個類,那麼這個時候可以說Employee類依賴了Bank這個類,如果Bank這個類發生了變化那麼會對Employee這個類造成影響。

   1:      public class Employee
   2:      {
   3:          public long TakeMoney(Bank bank)
   4:          {
   5:              return long.MaxValue;
   6:          }
   7:      }

Snap2

  • 關聯(Association)

      關聯關係有點邊界模糊和依賴有點像,但又完全不像。關聯是指一個類用到了另外的一個類,但不依賴。還是用程式碼來表達比較貼切

   1:      public class Shcool
   2:      {
   3:          public Student stu;
   4:      }
   5:      public class Student
   6:      {
   7:          
   8:      }

Snap3

  • 聚合(aggregation)

        聚合是一種單向關係,聚合與關聯的區別在於聚合的兩個類之間的關係在概念層次上不是一個級別的,一般來說聚合中的類關係總是一個類比別一個類要高階一些,而關聯基本上是平級的

   1:      public class Car
   2:      {
   3:          public
Engine engine;
   4:          public Wheel wheel;
   5:      }
   6:      public class Engine
   7:      {
   8:          
   9:      }
  10:      public class Wheel
  11:      {
  12:          
  13:      }

Snap4

  • 合成(Composition)

合成是一種特殊的聚合形式,它是提類與類之間的聯絡是非常密切的,少了那一個也不行。

Snap5

  • 實現(Realization)

簡單的說就是介面

Snap6