总结

用户头像
chenzt
关注
发布于: 2020 年 06 月 17 日

编程语言的实质:

编程的目的是:用计算机来解决现实世界的问题。

编程的过程即:在计算机所能理解的“模型”和现实世界之间建立一种联系。

编程语言是一种抽象的机制问题是对谁来抽象。

领域问题---分析抽象--->模型<---设计抽象--->软件系统



问题领域:

包含与系统所要解决的问题相关的实物和概念的空间。



抽象的种类:

机器代码和汇编语言:对基础机器进行抽象

非结构化的高级语言:对计算处理逻辑抽象

结构化的程序设计:开始对问题领域进行一定程度的抽象

面向对象的程序设计:直接表达问题空间内的元素



什么是面向对象编程?

  1. 万物皆为对象。

  2. 程序是对象的集合,他们通过发送消息来告知彼此所要做的。

  3. 每个对象都有自己的由其他对象所构成的存储。

  4. 每个对象都拥有其类型。

  5. 某一特定类型的所有对象都可以接收同样的消息。



什么是对象?

对象具有状态、行为和标识,

状态:表明每个对象都可以有自己的数据。

行为:表明每个对象都可以产生行为。

标识:表明每个对象痘区别与其他的对象。



面向对象编程的三要素

封装:隐藏实现细节、定义接口。

继承:is-a关系、has-a关系(组合)

多态:后期绑定、向上转行



面向对象编程与面向对象分析

面向对象编程不是使用面向对象的编程语言来进行编程,而是利用多态特性进行编程。

面向对象分析是将客观世界,即编程的业务领域进行对象分析。

  1. 充血模型与贫血模型

  2. 领域驱动设计DDD



面向对象设计的目的和原则

目的:强内聚、低耦合,从而是系统:易扩展、更强壮、可移植、更简单。

原则:

为达到上述设计目标,有人总结出了多种指导原则。

原则是独立于编程语言的,甚至也可以用于非面向对象的编程语言中。



设计模式

设计模式是用于解决某一种问题的通用的解决方案,设计模式也是独立于语言的,设计模式贯彻了设计原则。



框架

框架是用来实现某一类应用的结构性的程序,是对某一类架构方案可复用的设计与实现。



原则一:开闭原则(ocp)

OCP - Open/Closed Principle

对于扩展是开放的

对于更改是封闭的

简而言之:不需要修改软件实体,就应该能实现功能的扩展。关键是:抽象。



原则二:依赖倒置原则(DIP)

DIP - Dependency Inversion Principle

高层模块不能依赖底层模块,而是大家都依赖于抽象。

抽象不能依赖实现,而是实现依赖抽象。

DIP倒置了什么?

模块或包的依赖关系、开发顺序和职责。

软件的层次化:

高层决定低层、高层被重用。



原则三:理式替换原则(LSP)

一个正确的继承要符合什么要求? 要符合理式替换原则。

LSP要求,凡是使用基类的地方,一定也适用其子类。

子类一定得拥有基类的整个接口。

子类的访问控制不能比基类更严格。



原则四:单一职责原则(SRP)

SRP - Single Responsibility Principle

单一职责原则又称为 “内聚性原则”:即一个模块的组成元素之间的功能相关性。

将它与引起一个模块改变的作用力相联,就形成了如下描述:一个类,只能有一个引起它变化的原因。

什么是职责:一个职责是一个变化的原因。



原则五:接口隔离原则(ISP)

ISP - Interface Segregation Principle

不应该强迫客户程序依赖他们不需要的方法。

ISP和SRP的关系:

ISP和SRP是相关的,都和内聚性有关。

SRP指出应该如何设计一个类 -- 只能有一个原因裁成促使类发生改变。

ISP指出应该如何设计一个接口 -- 从客户的需要出发,强调不要让客户看到他们不要的方法。



用户头像

chenzt

关注

还未添加个人签名 2018.05.15 加入

还未添加个人简介

评论

发布
暂无评论
总结