设计模式之类之间的关系

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

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

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

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

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

            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

                                    

        代码:

[java]  view plain copy
  1. public class User {  
  2.   private Order order ;//注意这里不要初始化  
  3.   private int id;  
  4.   private String name ;  
  5. public Order getOrder() {  
  6.     return order;  
  7. }  
  8. public void setOrder(Order order) {  
  9.     this.order = order;  
  10. }  
  11.     
  12. }  
  13.   
  14.   
  15. class Order  
  16. {  
  17.     private User user;//注意这里不要初始化,避免双向关联时,反复的创建对象  
  18.     private int id;  
  19.   
  20.     public User getUser() {  
  21.         return user;  
  22.     }  
  23.   
  24.     public void setUser(User user) {  
  25.         this.user = user;  
  26.     }  
  27. }  
                                   自身关联:自己引用自己,类里面有一个自己的引用

                                   

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

                                    

               5、聚合关系(Aggregation

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

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

                              

                        6、组合关系(Compostion

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

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

                               

 转载 http://blog.csdn.net/kiritor/article/details/8629524

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值