3.designPattern
3.DesignPattern
[TOC]
一 概述
设计模式和软件架构
1 简介
也有人称之为"23种指针使用方法",本人觉得设计模式有点像语文中的成语.
设计模式解决了什么问题
能够帮助各位更好地掌控现有面向对象系统
帮助我们做出明智的决策
降低以后重构的工作量
2 历史
现在设计模式已经存在了几十年了,其中有一些已经不再适用.但是依然值得我们学习.
3 常识
4 文档网址等
文档推荐
《设计模式:可复用面向对象软件的基础》(《Design Patterns: Elements of Reusable Object-Oriented Software》):简称《设计模式》,作者是软件设计领域的四位大师(GoF,“四人帮”,又称Gang of Four,即Erich Gamma, Richard Helm, Ralph Johnson & John Vlissides)
三 基础
1 软件架构/计算机思维原则
1.1 关注点分离(Separation of concerns,SOC)
相关的:
分而治之
模块化
关注点是什么:不变的是流程,变的是实现细节,大部分业务需求,都是在做变的部分,如果不变也就没有业务需求了,变化的东西是什么?找到这个就是我们的关注点。
关注点分离的实现:
面向接口编程:接口关注的是能做什么;接口的实现关注的是如何做的问题
配置文件:比如数据库的驱动、连接都可以写在配置文件里。只关注有数据库的服务,不关注具体的数据库是什么
关注点开放:将业务会变的部分开放出去,让业务方自己去做,而自己只做核心的功能
2 设计模式六大原则
最开始只有单一职责和开闭原则
2.1 单一职责
和AOP的关系
2.2 里氏替换
2.3 依赖倒置
2.4 接口隔离
2.5 迪米特原则(降低耦合)
2.6 开闭原则(OCP)
一个好的设计,对扩展应该是开放的,对修改应该是关闭的。
3 设计模式
3.1 单例模式
3.2 模板模式
3.3 工厂模式
简单工厂模式
3.4 命令模式
3.5 职责链模式
3.6 观察者模式(Observer)
拉
推
发布订阅模式
... 观察者模式:发布(release)--订阅(subscibe),变化(change)--更新(update) 事件驱动模型:请求(request)--响应(response),事件发生(occur)--事件处理
3.7 适配器模式
四 高级
每个模式都有自己优点和缺点,都了解才能更好的使用.
五 经验
六 问题
七 未整理
关注点分离
Last updated
Was this helpful?