1

如果说学习说数据结构和算法是为了写出高效的代码,那学习设计模式就是为了写出高质量的代码

为什么要学习设计模式的三个理由:
(一) 应对面试中的设计模式相关问题
学习设计模式和算法一样,最功利、最直接的目的,可能就是应对面试了
不管是前端工程师、后端工程师,还是全栈工程师,在求职面试中,设计模式问题是被问得频率比较高的一类问题。
特别是大厂,经常会拿算法、设计模式之类的问题来考察候选人。
常见的:

1、面向对象的四大特性:封装、抽象、继承、多态

2、SOLID 原则?DRY 原则?KISS 原则?YAGNI 原则?LOD 原则?

SOLID 原则并非一个原则。它包含:单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(LSP)、接口隔离原则(ISP)、依赖倒置原则(DIP)。

DRY 原则 :Don’t Repeat Yourself 不要写重复的代码

KISS 原则:Keep It Simple and Stupid. 保持代码可读和可维护的重要手段

YAGNI 原则:You Ain’t Gonna Need It。这条原则的核心思想就是:不要做过度设计。

LOD 原则:Law of Demeter(叫作最小知识原则,英文翻译为:The Least Knowledge Principle )能够实现代码的“高内聚、松耦合”

3、说一下设计模式?你都知道哪些?

设计模式总共有 23 种,总体来说可以分为三大类:创建型模式( Creational Patterns )、结构型模式( Structural Patterns )和行为型模式( Behavioral Patterns )
image

(二)提高复杂代码的设计和开发能力

可以从以下几个点思考如何设计代码:
如何分层、分模块?

应该怎么划分类?

每个类应该具有哪些属性、方法?

怎么设计类之间的交互?

该用继承还是组合?

该使用接口还是抽象类?

怎样做到解耦、高内聚低耦合?

该用单例模式还是静态方法?

用工厂模式创建对象还是直接 new 出来?

如何避免引入设计模式提高扩展性的同时带来的降低可读性问题?

(三)让读源码、学框架事半功倍


singwa学习小组
61 声望39 粉丝

singwa服务端学习小组