摘要: 组合也是关联关系的一种特例,它体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合;它同样体现整体与部分间的关系,但此时整体与部分是不可分的,它们具有统一的生存期,整体的生命周期结束也就意味着部分的生命周期结束,部分对象与整体对象之间具有同生共死的关系,组合关系中的部分,是不能在整体之间进行共享的。比如人和眼睛,当然,有人会说现在医学发达,眼睛可以移植给别人,如果是... 阅读全文
posted @ 2013-11-29 10:35 GofLee 阅读(285) 评论(0) 推荐(0)
摘要: 聚合关系是关联关系的一种特例,它体现的是整体与部分的关系,即has-a的关系,此时整体与部分之间是可分离的,它们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享。比如计算机与CPU、公司与员工的关系等。表现在代码层面,和关联关系是一致的,只能从语义级别来区分。 在聚合关系中,成员类是整体类的一部分,即成员对象是整体对象的一部分,但是成员对象可以脱离... 阅读全文
posted @ 2013-11-29 10:29 GofLee 阅读(709) 评论(0) 推荐(0)
摘要: 关联关系是类与类之间最常用的一种关系,它是一种结构化关系,用于表示一类对象与另一类对象之间有联系。它体现的是两个类、或者类与接口之间语义级别的一种强依赖关系,比如我和我的朋友。这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的,关联可以是单向、双向的。表现在代码层面,为被关联类B以类属性的形式出现在关联类A中,也可能是关联类A引用... 阅读全文
posted @ 2013-11-29 10:20 GofLee 阅读(594) 评论(0) 推荐(0)
摘要: 依赖关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系。可以简单的理解,就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、临时性的、非常弱的,但是B类的变化会影响到A;比如某人要过河,需要借用一条船,此时人与船之间的关系就是依赖;表现在代码层面,为类A在某个方法中使用类B是作为类A的方法参数、方法中的局部变量... 阅读全文
posted @ 2013-11-29 10:07 GofLee 阅读(200) 评论(0) 推荐(0)
摘要: 实现关系是用来描述接口和实现接口的类或者构建结构之间的关系,接口是操作的集合,而这些操作就用于规定类或者构建结构的一种服务。 在接口和类之间的实现关系中,类实现了接口,类中的操作实现了接口中所声明的操作。在UML中,类与接口之间的实现关系用带空心三角形的虚线来表示。 UML示例图如下所示: 返回目录 阅读全文
posted @ 2013-11-29 09:57 GofLee 阅读(131) 评论(0) 推荐(0)
摘要: 什么是泛化关系?用一个例子简单的说:假设A是B和C的父类,B、C具有公共类(父类)A,说明A是B、C的一般化(概括,也称泛化),B、C是A的特殊化。 在编程上,泛化关系(Generalization)就是我们常说的继承关系,称为“is-a-kind-of”关系,泛化关系用于描述父类与子类之间的关系,父类又称作基类或超类,子类又称作派生类。在UML中,泛化关系用带空心三角形的直线来表示。 ... 阅读全文
posted @ 2013-11-28 23:11 GofLee 阅读(554) 评论(0) 推荐(0)
摘要: 这是一个系列,在这个系列里面,将从基础知识六大设计原则、设计模式中类的关系开始,对设计模式进行分析,示例源码采用Objective-C语言,讲解也是基于IOS进行。由于本人编写本系列文章也是边学习边整理,因此持续的时间会比较长,更多的是希望和大家一起交流,共同进步。文章中有错误的地方或者不足的地方,欢迎大家提出宝贵的意见。 下面的目录结构是现在的规划,后期可能会有一些调整,... 阅读全文
posted @ 2013-11-28 16:26 GofLee 阅读(127) 评论(0) 推荐(0)
摘要: 定义 就一个类而言,应该仅有一个引起它变化的原因。 定义解读 这是六大原则中最简单的一种,通俗点说,就是不存在多个原因使得一个类发生变化,也就是一个类只负责一种职责的工作。 优点 类的复杂度降低,一个类只负责一个功能,其逻辑要比负责多项功能简单的多; 类的可读性增强,阅读起来轻松; 可维护性强,一个易读、简单的类自然也容易维护; 变更引起的风险降低,变更是必然的,如果单一职责原则遵守的好... 阅读全文
posted @ 2013-11-28 14:59 GofLee 阅读(158) 评论(0) 推荐(0)