设计模式概要
模式的由来-克里斯托弗*亚历山大,《建筑的永恒之道》
将模式的思想引入软件工程方法学-GoF
软件模式并非仅限于设计模式,还包括架构模式、分析模式和过程模式。是指在软件开发过程中某些可重现问题的有效解决方法,包括问题描述、前置条件、解决方案和结果。
设计模式是一套被反复使用的、多数人知晓的、经过分类编目的代码设计经验的总结。可分为创建型、结构型、行为型三类共23种。
23种设计模式
创建型模式包含:单例模式、简单工厂模式、工厂方法模式、抽象工厂模式、原型模式、建造者模式;结构型模式包括:适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式、代理模式、代理模式;行为型模式包括:责任链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式、访问者模式。
面向对象设计原则
单一职责原则、开闭原则、里氏替换原则、依赖倒置原则、接口隔离原则、合成复用原则、迪米特法则。
UML
统一建模语言主要包括视图、图、模型元素、通用机制几个关键部分。
视图包括用户视图、结构视图、行为视图、实现视图和环境视图。用户视图用于描述系统需求;结构视图标识静态行为,如包、类、对象及之间的关系;行为视图标识动态行为,描述系统组成元素及运行时交互关系;实现视图标识系统逻辑元素分布、物理文件以及之间的关系;环境视图标识物理元素分布、硬件设备以及之间的关系。
图主要包括13种,用例图(用户视图)、类图(结构视图)、对象图(结构视图)、包图(结构视图)、组合结构图(结构视图)、状态图(行为视图)、活动图(行为视图)、顺序图(行为视图)、通信图(行为视图)、定时图(行为视图)、交互概览图(行为视图)、组件图(实现视图)、部署图(环境视图)。
模型元素:类、对象、消息以及之间的关系,包括关联关系、依赖关系、泛化关系等等。
通用机制:注释、信息和语义。
设计原则概述
单一职责原则:一个类只负责一个功能领域中的相应职责(就一个类而言,应该只有一个引起它变化的原因)。【高内聚、低耦合】
开闭原则:对扩展开放,对修改关闭。【面向对象设计的目标、抽象化】【目标】
里氏替换原则:所有引用基类(父类)的地方必须能透明地使用其子类的对象。【基础】
依赖倒置原则:抽象不应该依赖于细节,细节应该依赖于抽象。换言之,要针对接口编程而不是针对实现编程。【面向对象的主要实现机制之一】关联:依赖注入(构造注入、setter注入、接口注入)【手段】
接口隔离原则:使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口。
合成复用原则:尽量使用对象组合,而不是继承来达到复用的目的。
迪米特法则:一个软件实体应当尽可能少地与其他实体发生相互作用。【低耦合】
创建型模式
单例模式-确保对象的唯一性
为了节约系统资源,有时需要确保系统中某个类只有唯一一个实例,可以通过单例模式实现。
单例模式只包含一个单例角色。在单例类的内部实现只生成一个实例,同时提供一个静态的getInstance()方法,让客户可以访问它的唯一实例;为了防止在外部对单例类实例化,它的构造函数可见性为private;在单例类内部定义了一个Singleton类型的静态对象,作为供外部共享访问的唯一实例。