设计模式——开始

本文详细解释了设计模式中的六种关系:依赖、关联、聚合、组合、继承和实现,并通过UML图例加以说明,帮助读者理解不同关系的特点及应用场景。

学设计模式过去有一段时间了,一转头,发现很多都忘了,决定重新学一遍,顺便记录下---------------

说到设计模式,难免就要画UML,我使用StarUML。

一、设计模式中的关系

一般有六种:依赖、关联、聚合、组合、继承和实现

1、依赖(Dependency): -------->

 依赖表示一个类依赖于另一个类的定义,如下图:

 People类依赖于Book类,Book类作为people的方法参数

 一般而言,依赖的表现为类A作为类B的局部变量、方法形参、静态方法调用

2、关联(Association): 

   当一个对象与另一个对象的特定实例间存在某种关系时可称为关联,如下图:

  代码如下:

复制代码
1 Book book = new Book("gof") 
2 public void read(){
3     String name = this.book.getName();
4     System.out.printf("start read %s",name);
5     book.reading();
6 }
复制代码

  关联的表现为类B作为类A的成员变量,一般直接在声明的时候实例化或在setter中实例化:

Book book = new Book("xxx");

3、聚合(aggregation):

聚合与关联相似,但耦合度强于关联。语义上关联关系的对象是相互独立的,而聚合中的对象则更像是“整体-个体”关系

  对象(Book和Food)作为People的部分出现,在People中作为成员变量,一般使用setter赋值

 

4、组合(Composition):

  组合的耦合度较高,与聚合相比,组合在语义上属于“同生共死的关系”。

 必须有head和body才能创造出people,当people死亡(结束周期),head和body也随之结束。在程序中,组合关系通常是在构造函数中赋值

5、继承(Generalization)

  这个没什么说的:

 

 

6、实现(implementation)

 

继承和实现很简单,就不用多介绍了。

 

在具体使用中,要根据不同语境使用相应的关系:

1、依赖和关联:

  依赖是两个相互独立的类,两个之间没有特定、长久的联系,只是临时性的放到一起;

  关联的两个对象之间有一定的关系,如朋友、父子之类的。和依赖相似,都是等阶的类。

2、关联和聚合:

  关联一般就表示两个类之间有联系

  相比关联,聚合有种“整体-部分”关系,耦合性更强

3、聚合和组合:

  聚合没有强制性的关系,类结合到一起,如A拥有B和C,B和C可以组成A

  组合要求有一致的周期性,强调A包含了B和C,B和C作为A的一部分

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值