从理论到实战——OO 设计与 Spring 核心基础

目标

  • 对设计有点感觉
  • Spring 基础

一、OO 设计

1 什么是面向对象?

封装、继承、多态。仅此而已?

我假定未来理想的计算机能够具备生物组织一样的功能,每个“细胞”能够独立运作,也能与其它功能一起完成复杂的目标。“细胞”能够相互重组,以解决问题或者完成功能。——第一款面向对象语言SmallTalk发明者:艾伦.凯

2 面向过程一样写代码,为什么需要面向对象?

软件开发的核心问题:复杂度。

OO 提供了更高层次的抽象,可以用更低的成本,构建更复杂的应用。

3 常用设计原则

设计原则可以提供一些方向性的指导,不像设计模式那么死板。设计模式是设计原则在各种场景下的具体实践案例。

  • 依赖倒置:针对接口(抽象)编程,不针对实现编程
  • 单一职责:一个类最好只有一个引起变化的原因
  • 最少知识:一个类要跟尽量少的类打交道
  • 多用组合少用继承

以上是个人常用的一些原则。这些原则,都是为了尽量写出“高内聚低耦合”的代码。

4 彩蛋:编程三重境界

  1. 我写的不是代码,是编程思想
  2. 我写的不是代码,是现实世界
  3. 我写的不是代码,是程序人生

(本来想把编程境界展开,专门做分享,谈一些理论性更强,抽象层次更高,更宏观的东西。但是抽象层次高的问题就是太“虚”了,分享出来作用不大,因此只在这里简单提一下。以后可另写文章分享感悟)

二、Spring 核心基础

(内部分享的时候,核心内容从下文摘录。这里不赘述)

Spring 如何简化 Java 开发