前言

用php开发两年多了,准备也写一下平时常用的设计模式,都是基于自己的实践经验,当然,用设计模式之前首先要看懂设计模式,因此这里首先讲解一下UML类图。通过UML类图,能更好的和大家交流,也能很容易就表达出自己的设计想法

UML

Unified Modeling Language(UML)又称统一建模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置


矩形框代表一个类,类图分为三层
  1. 第一层为类的名称,如果是抽象类则类名用斜体表示,如图中的动物类
  2. 第二层为类的特性(通常为类的成员属性)
  3. 第三层为类的操作(通常为类的成员方法)
注意:“+”代表public,“-”代表private,“#”代表protected

php设计模式——UML类图_父类

动物类是一个抽象类,它是不能被实例化的,而人类是可以被实例化的

接口

接口有两种表示方法:矩形表示法(开车的接口)和棒棒糖表示法(人类中的实现开车的接口)。
  • 矩形表示法,顶端有<<接口>>或者<<interface>>,第一行为接口名称,第二行为接口方法
  • 棒棒糖表示法,圆圈旁为接口名称,接口方法在实现类中出现,如果人类中的开车
php设计模式——UML类图_类图_02


泛化(Generalization)

表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系。一般化的关系是从子类指向父类的,与继承或实现的方法相反。用空心三角形+实线来表示继承。在静态结构图中,在父类和子类间拖放归纳连接,箭头指向父类,另一段指向子类。用空心三角形+虚线来表示实现接口。

php设计模式——UML类图_类图_03


依赖(Dependency)

对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。依赖关系具体表现在局部变量,方法的参数,以及对静态方法的调用。比如说动物有几大特征,如新陈代谢,繁殖,有生命。而动物要有生命力,就需要氧气,水,以及食物,也就是说动物依赖于氧气和水。

代码表现

局部变量、方法的参素和或者对静态方法的调用


php设计模式——UML类图_设计模式_04


聚合关系(Aggregation)

聚合关系是整体与部分的关系,且部分可以离开整体而单独存在。如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。用带空心菱形的实心线来表示

代码表现

成员变量


php设计模式——UML类图_继承关系_05


组合(Composition)

是整体与部分的关系,但部分不能离开整体而单独存在。如公司和部分是组合关系

代码表现

成员变量


php设计模式——UML类图_类图_06


后记

还有一些有待补充吧,边学边记!

 

php设计模式——UML类图_父类_07