设计模式概述
设计模式概述
索引
- 我的一些笔记
- 值得参考的网站
http://c.biancheng.net/design_pattern/
https://design-patterns.readthedocs.io/zh_CN/latest/index.html
https://refactoringguru.cn/design-patterns
设计模式是什么?举例说明类模式和对象模式的区别?
设计模式对MVC的影响?
最小知识原则在设计模式中的应用?
软件模式
-
软件模式是将模式的一般概念应用于软件开发领域,即软件开发的总体指导思路或参照样板
-
除了设计模式,还包括架构模式、分析模式、过程模式等
-
一定条件下的出现的问题以及解法
-
四个部分:问题描述、前提条件(环境或约束条件)、解法和效果
-
大三律(Rule of Three):即只有经过三个以上不同类型(或不同领域)的系统的校验,一个解决方案才能从候选模式升格为模式
设计模式
定义
设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结,使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。
分类
根据目的分类
- 创建型模式主要用于创建对象。
- 结构型模式主要用于处理类或对象的组合。
- 行为型模式主要用于描述对类或对象怎样交互和怎样分配职责。
根据范围
- 类模式处理类和子类之间的关系,通过继承建立关系,在编译器就被确定下来,属于静态的
- 对象模式处理对象间的关系,这些关系随时在变化,具有动态性
应用
一个游戏,有几种人类角色:骑士、骑兵、步兵,持有不同的武器(矛、剑、斧),拥有fight方法;有一个非人类角色巨魔,可以持有武器,但攻击方法不同(beat)。现在希望让巨魔和其他人类角色一起进行游戏,并且要求有角色死亡时其他活着的角色要收到通知。运用设计模式进行设计,并画出类图。
角色+武器:桥接模式
非人类角色:适配器(可以用类适配器感觉)
死亡通知:观察者+中介模式(后两者类似MVC)