文章目录
设计模式的六大原则有:
- Single Responsibility Principle:单一职责原则
- Open Closed Principle:开闭原则
- Liskov Substitution Principle:里氏替换原则
- Law of Demeter:迪米特法则
- Interface Segregation Principle:接口隔离原则
- Dependence Inversion Principle:依赖倒置原则
把这六个原则的首字母联合起来( L 算做一个)就是 SOLID (solid,稳定的),其代表的含义就是这六个原则结合使用的好处:建立稳定、灵活、健壮的设计
设计实践原则
- 找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。
- 针对接口编程,而不是针对实现编程
- 多用组合少用继承
iOS基础设计模式
- 1、MVC
- 2、代理模式 (对象访问)
- 3、通知模式(观察者模式)
- 4、单例模式(创建者模式)
- 5、类别模式 (行为扩展)
《Header First》的设计模式
设计模式是经验的积累,实践性很强,所以分类并不一定准确,而且往往是不同的开发对象平台,呈现差别比较大,而且模式之间交叉组合的,而不是相互脱离的,所以不必太纠结各类书籍分类。
基于Andorid开放嵌入式系统,及Web网页和服务器开发,Java使用的普遍性,所以个人认为基于Java编写的《Header First》具有一定的参考性。
常用的设计模式(11种)
- 观察者模式
- 装饰者模式
- 工厂模式
- 单例模式
- 命令模式
- 适配器模式
- 外观模式(适配器)
- 模版方法模式
- 组合模式(迭代器)
- 状态模式
- 代理模式
比较少用的设计模式(10种)
- 桥接模式
- 生成器模式
- 责任链模式
- 享元模式
- 解释器模式
- 中介者模式
- 备忘录模式
- 原型模式
- 访问者模式
按行为作用分类
- 创建型模式=>5种:工厂方法模式、抽象工厂模式、单例模式、构建者模式、原型模式
- 结构型模式=>7种:适配器模式、装饰模式、代理模式、外观模式、桥接模式、组合模式、享元模式
- 行为型模式=>11种:策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式
iOS设计模式细分扩展
泛型设计模式
- 责任链模式
- 迭代器模式
- 命令模式
- 原型模式
- 解析器模式
- 桥接模式
工厂模式
- 抽象工厂
- 策略模式
- 构建者模式-中介者模式
行为扩展模式
- 访问者模式
- 装饰-原型模式
模版方法模式
- 观察者模式☑️
- 外观模式和中介者模式
- 适配器模式
组合设计模式
- 组合模式
- 迭代器模式
对象性能、状态、访问
- 享元模式
- 备忘录模式
- 代理模式
UML类图关系
- 泛化关系(generalization):说白了就是继承
- 实现关系(realization):说白了就是接口
- 依赖关系(dependency)
- 关联关系-单向关联(Directed Association)
- 关联关系-双向关联(Association)
- 聚合关系(Aggregation)
- 组合关系(Composition)
设计模式学习建议
- 对你的项目代码重构,反复重构
- 高级语法(一般情况你做开发基本上泛型编程用不到,属于框架设计领域大量使用)
- Java、Swift:称之为泛型编程
- C++里面:模版编程(模版类、模版函数等等…)