设计原则:对象之间的关系

背景

我们执着于面《向对象编程》,而多数情况我们都在使用《面向类型编程》,今天简单快速的回顾一下对象的之间的关系。

先谈谈类型之间的关系

设计原则:对象之间的关系_分享

类型之间的依赖,这里进一步划分为两类:

  1. 显式依赖:在参数中显式的表达了依赖。
  2. 隐式依赖:没有在参数中显式的表达依赖,直接在方法中创建了某个类型的实例,然后使用。

类型之间的关联从某种程度上来讲也属于一种依赖,在这个维度讲,也可以将其划分为两类:

  1. 显式依赖:使用构造方法或方法注入关联。
  2. 隐式依赖:没有使用构造方法或方法注入关联,直接在构造方法中创建了某个类型的实例,然后赋值给关联。

集合关联属于整体和个体的关系,复合关联属于整体和部分的关系,两者的区别在于语义上,技术上表现非常一致,从DDD上来讲,复合关联的双方属于同一个聚合,集合关联的双方属于两个聚合。

实现和继承会影响运行时消息的发送。

对象之间的关系

对象之间只有依赖和关联。

设计原则:对象之间的关系_分享_02

为什么需要依赖和关联

行为需要数据,数据表现为依赖和关联。

设计原则:对象之间的关系_分享_03

示例

需求:a.m1先执行,然后执行b.m2。

设计原则:对象之间的关系_分享_04

注意:这里只给出了常见的实现方式,还会有其他形式,如:采用Event的方式。

备注

上边的草图是开会期间画的。

 

框架地址:http://happy.codeplex.com