设计模式之美学习笔记 -- 部分概念简记

Posted 夏至的稻穗

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式之美学习笔记 -- 部分概念简记相关的知识,希望对你有一定的参考价值。

封装、抽象、继承、多态分别可以解决哪些编程问题

封装:

  • 特性: 控制访问权限
  • 意义: 暴露有限的接口,达到业务隔离,只提供必要的操作,隐藏信息,保护数据,提高类的易用性。

抽象:

  • 特性:隔离具体实现
  • 意义:让用户不关注具体实现,通过接口隔离,达到解耦

继承:

  • 特性:继承父类的共有方法
  • 意义:提高代码复用,但过度集成,容易造成可读性差,维护性变差,提高复用

多态:

  • 特性:子类实现父类的不同方法
  • 意义:重写逻辑,实现了“只修改关闭,对扩展开放”的设计原则,提高复用性

面向对象编程(面向对象编程语言) 与 面向过程编程(面向过程编程语言) 的区别

面向对象编程:

面向对象编程是一种编程范式或编程风格。它以类或对象作为组织代码的基本单元,并将封装、抽象、继承、多态四个特性,作为代码设计和实现的基石

面向对象编程语言

面向对象编程语言是支持类或对象的语法机制,并有现成的语法机制,能方便地实现面向对象编程四大特性(封装、抽象、继承、多态)的编程语言。

面向过程编程

面向过程编程也是一种编程范式或编程风格。它以过程(可以理解为方法、函数、操作)作为组织代码的基本单元,以数据(可以理解为成员变量、属性)与方法相分离为最主要的特点。面向过程风格是一种流程化的编程风格,通过拼接一组顺序执行的方法来操作数据完成一项功能。

面向过程变成语言

面向过程编程语言首先是一种编程语言。它最大的特点是不支持类和对象两个语法概念,不支持丰富的面向对象编程特性(比如继承、多态、封装),仅支持面向过程编程。

抽象类与接口的不同

  • 抽象类是对成员变量和方法的抽象,是一种 is-a 关系,是为了解决代码复用问题
  • 接口仅仅是对方法的抽象,是一种 has-a 关系,表示具有某一组行为特性,是为了解决解耦问题,隔离接口和具体的实现,提高代码的扩展性

继承过多的情况

采用 接口+组合+委托符合矢量化思想去规避

以上是关于设计模式之美学习笔记 -- 部分概念简记的主要内容,如果未能解决你的问题,请参考以下文章

设计模式之美 精华总结 笔记

机器学习基石笔记1

设计模式之美 精华总结 笔记

《架构之美》阅读笔记二

机器学习基石笔记-Lecture 10 Logistic regression

《架构之美》阅读笔记06