上一篇文章中主要介绍了设计模式的定义与分类,不过在具体学习那种设计模式之前还是有必要

        掌握面向对象、设计 模式中的类的关系,这对于之后的设计模式的学习是有很大好处的。因为只有

         理解了面向对象中类之间存在的关系,才有可能运用恰当的设计思想。

                    在面向对象的程序设计中类是对象的抽象,展示了对象的结构与系统的交互行为(数据、数据操作)。

        类具有继承关系 可以继承父类,也可以和其他类进行交互。具体来说类之间的交互方式主要有以下方式:

            1、继承关系 (Generalization)

            继承表示类与类之间(接口与接口之间)的父子关系,在java语言中我们使用extends表示类之间

          的继承关系,而在UML图例中使用实线+空心箭头表示,箭头指向父类后父接口。如下:

             

           2、实现关系(Implementation)

                       表示一个类实现一个或多个接口的方法:接口是可以多实现的。简单的来讲接口就是一种契约、规范

                    实现该接口的类符合该接口的规范(实现接口的方法)。UML例图中使用虚线+空心箭头表示实现关系,java

                    中使用Implements表示。如图:

                 

               3、依赖(Dependence)

                   依赖关系指一个类依赖于另一个类,直观的来讲的话就是类A使用了类B,其中B作为A类的方法参数、方法

                       局部变量、静态方法调用。如图:

                     

                     4、关联关系(Association)

                        两个相对独立的对象,当一个对象的实例与一个对象的实例存在固定的关系时,这两个对象就存在这关联关系。

                            具体来讲就是类中是否有其他类作为其成员变量。

                                       ●单向关联:类A中使用了类B,类B是作为类A的成员变量的。关联关系表现为A->B

                              

                                    双向关联:类A使用类B作为成员变量,类B也使用类A作为成员变量,关联关系表现为A<->B

                                   

        代码:

public class User {   private Order order ;//注意这里不要初始化   private int id;   private String name ; public Order getOrder() {     return order; } public void setOrder(Order order) {     this.order = order; }    }   class Order {     private User user;//注意这里不要初始化,避免双向关联时,反复的创建对象     private int id;      public User getUser() {         return user;     }      public void setUser(User user) {         this.user = user;     } }
                                  自身关联:自己引用自己,类里面有一个自己的引用

                                  

                                     ●多维关联:多个对象之间存在关联关系

                                    

               5、聚合关系(Aggregation

                     聚合关系是关联关系的一种,聚合关系的耦合度比关联关系的耦合度要强。他们虽然在代码表现上

                      是一样的,但是聚合关系强调整体与部分的关系(A由B组成),而关联关系两者是独立的。

                              

                        6、组合关系(Compostion

                     相比于聚合关系,组合关系的耦合度更强。组合关系同样是“整体-部分”的关系,所不同的是

                             组合关系中的”部分“是不能脱离整体而存在的,换言之”整体“管理”部分“的生命。