标签:
终于决定写设计模式这个系列的文章了,从事软件开发这3年多来,面对纷繁的技术,却慢慢迷失了自己,看的多了,学的多了,到头来每种都会一点,却每种都是一知半解,于是下定决心寻找软件世界最本质的东西——软件的哲学。决定先从设计模式下手,从软件最细小的颗粒着手,慢慢领悟软件架构的威力。熟悉设计模式首先得对UML类图有深入的了解,下面的图解是为了帮助我能更好的记住他们。
UML中描述对象和类之间的关系包括:依赖,关联,聚合,组合,泛化,实现等。
表示方法:虚线加箭头。箭头指向被依赖的元素,这里表示为A------>B。
特点:当类与类之间有使用关系时就属于依赖关系,不同于关联关系,依赖不具有“拥有关系”,而是一种“相识关系”,只在某个特定地方(比如某个方法体内)才有关系。
public class Person { public void Drink(Water water) { // TODO: implement } }
表示方法:实线箭头,箭头指向被依赖元素;箭头上的数字范围称为多重性关联关系,表示两个关联对象在数量上的对应关系:一对一,一对多,多对多。
特点:表示类与类或类与接口之间的依赖关系,表现为“拥有关系”,具体代码可用实例变量来表示。
public class Teacher { private Student[] Students; }
表示方法:空心菱形的实线,菱形头指向整体。
特点:在代码实现聚合关系时,部分对象通常作为构造方法、业务方法的参数注入到整体对象中。
public class Car { public void SetEngine(Engine Engine) { this.Engine = Engine; } public Car(Engine Engine) { this.Engine = Engine; } private Engine engine; }
表示方法:实心菱形的实线,菱形头指向整体。
特点:在代码实现组合关系时,通常在整体类的构造方法中直接实例化部分类。
public class 人 { public 人() { z=new 肢(); } public 肢 z; }
表示方法:用带空心箭头的实线表示,箭头指向一般个体。
表示方法:空心箭头和虚线表示,箭头指向定义约定的元素。
标签:
原文地址:http://www.cnblogs.com/sunjl/p/4521838.html