学习笔记: 架构师训练营 - 第三周

用户头像
四夕晖
关注
发布于: 2020 年 10 月 04 日

1、OOA、OOD、OOP

OOA(Object Oriented Analysis:面向对象分析法)

  • 一个系统的开发过程中进行了系统业务调查以后,按照面向对象的思想来分析问题

  • 只是对需求中描述的问题,进行模块化的处理,描述问题的本质,区别每个问题的不同点相同点,确定问题中的对象

  • 强调的是在系统调查资料的基础上,针对OO方法所需要的素材进行的归类分析和整理,而不是对管理业务现状和方法的分析



OOD(Object Oriented Design:面向对象设计)

  • 根据需求决定所需的类、类的操作以及类之间关联的过程,对OOA分析的结果作进一步的规范化整理,以便能够被OOP直接接受

  • 是管理程序内部各部分的相互依赖。为了达到这个目标,OOD要求将程序分成块,每个块的规模应该小到可以管理的程度,然后分别将各个块隐藏在接口(interface)的后面,只通过接口相互交流

  • 是一种解决软件问题的设计范式(paradigm),一种抽象的范式。使用OOD这种设计范式,我们可以用对象(object)来表现问题领域(problem domain)的实体,每个对象都有相应的状态和行为



OOP(Object Oriented Programming:面向对象编程)

  • 以建立模型体现出来的抽象思维过程和面向对象的方法

  • 模型是用来反映现实世界中事物特征的。任何一个模型都不可能反映客观事物的一切具体特征,只能对事物特征和变化规律的一种抽象,且在所涉及的范围内更普遍、更集中、更深刻地描述客体的特征

  • 通过建立模型而达到的抽象是人们对客体认识的深化

2、OOD设计原则

  • 开闭原则(Open-Closed Principle, OCP)

  • 依赖倒置原则(Dependence Inversion Principle, DIP)

  • 里氏替换原则(Liskov Substitution Principle,LSP)

  • 单一职责原则(Single Responsibilities Principle,SRP)

  • 接口隔离(Interface Segregation Principle, ISP)

3、设计模式

3.1 什么是设计模式

  • 每种设计模式都描述一种问题的通用解决方案,这种问题在我们的环境中不停出现

  • 一种可重复使用的解决方案

3.2 学习方式

  • 看这些设计模式是解决什么问题,

  • 如何去解决这个问题,

  • 在解决这个问题过程中体现出的优势

  • 有没有更好的解决方案

3.3 设计模式的组成

  • 模式的名称:由少量的字组成的名称,有助于我们表达我们的设计

  • 待解决的问题:描述了何时需要用这种模式,以及运用模式的环境

  • 解决方案:组成设计的元素(类和对象)、它们的关系、职责以及合作。但这种解决方案是抽象的,不代表具体的实现

  • 结论:运用这种方案所带来的利和弊,主要是指对系统的弹性、扩展性和可移植性的影响

3.4 设计模式中的分类

从功能分

  • 创建模式

对象的实例化过程的抽象,

工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式

  • 结构模式

将类或者对象结合在一起形成更大的结构

适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式

  • 行为模式

对在不同对象之间划分责任和算法的抽象化

策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式



从方式分

  • 类模式

  • 对象模式

3.5 Junit 使用的设计模式

使用模板方法模式、策略模式,组合模式、装饰器模式

3.6 spring中使用到的设计模式
  • 控制反转(IOC):是一种解耦的设计思想

  • 依赖注入(DI):将实例变量传入到一个对象中去

  • 工厂设计模式:Spring使用工厂模式通过 BeanFactoryApplicationContext 创建 bean 对象

  • 单例设计模式:Spring 中的 Bean 默认都是单例的。

  • 代理设计模式: Spring AOP 功能的实现。

  • 模板方法:Spring 中 jdbcTemplatehibernateTemplate 等以 Template 结尾的对数据库操作的类,它们就使用到了模板模式

  • 观察者模式:Spring 事件驱动模型就是观察者模式很经典的一个应用。

  • 适配器模式:Spring AOP 的增强或通知(Advice)使用到了适配器模式、spring MVC 中也是用到了适配器模式适配Controller

  • 装饰者模式:我们的项目需要连接多个数据库,而且不同的客户在每次访问中根据需要会去访问不同的数据库。这种模式让我们可以根据客户的需求能够动态切换不同的数据



发布于: 2020 年 10 月 04 日 阅读数: 16
用户头像

四夕晖

关注

还未添加个人签名 2018.01.16 加入

还未添加个人简介

评论

发布
暂无评论
学习笔记:架构师训练营-第三周