3.designPattern

3.DesignPattern

[TOC]

一 概述

设计模式和软件架构

1 简介

也有人称之为"23种指针使用方法",本人觉得设计模式有点像语文中的成语.

  1. 设计模式解决了什么问题

    1. 能够帮助各位更好地掌控现有面向对象系统

    2. 帮助我们做出明智的决策

    3. 降低以后重构的工作量

2 历史

  1. 现在设计模式已经存在了几十年了,其中有一些已经不再适用.但是依然值得我们学习.

3 常识

4 文档网址等

  1. 文档推荐

    1. 《设计模式:可复用面向对象软件的基础》(《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)

相关的:

  1. 分而治之

  2. 模块化

关注点是什么:不变的是流程,变的是实现细节,大部分业务需求,都是在做变的部分,如果不变也就没有业务需求了,变化的东西是什么?找到这个就是我们的关注点。

关注点分离的实现:

  1. 面向接口编程:接口关注的是能做什么;接口的实现关注的是如何做的问题

  2. 配置文件:比如数据库的驱动、连接都可以写在配置文件里。只关注有数据库的服务,不关注具体的数据库是什么

关注点开放:将业务会变的部分开放出去,让业务方自己去做,而自己只做核心的功能

2 设计模式六大原则

最开始只有单一职责和开闭原则

2.1 单一职责

  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)

  1. 发布订阅模式

  2. ... 观察者模式:发布(release)--订阅(subscibe),变化(change)--更新(update) 事件驱动模型:请求(request)--响应(response),事件发生(occur)--事件处理

3.7 适配器模式

待研究:Java最优良的Adapter模式:适配器模式

四 高级

  1. 每个模式都有自己优点和缺点,都了解才能更好的使用.

五 经验

六 问题

七 未整理

  1. 关注点分离

Last updated

Was this helpful?