架构师训练营 -Week 02 学习总结
面向对象编程
面向对象编程的英文缩写是 OOP,全称是 Object Oriented Programming。
面向对象编程是一中计算机编程架构,它的基本原则是代码是以类或对象作为基本单元组成,OOP使得程序更有重用性、灵活性和扩展性。OOP的核心思想是:封装、继承、多态(重点是类和对象),
正是因为它丰富的特性,可以实现很多复杂的设计思路,是很多设计原则、设计模式编码实现的基础。
掌握面向对象编程核心是掌握面向对象分析和设计,面向对象分析和设计围绕着对象或类来做需求分析和设计的。分析和设计两个阶段最终的产出是类的设计,包括程序被拆解为哪些类,每个类有哪些属性方法,类与类之间如何交互等等。它们比其他的分析和设计更加具体、更加落地、更加贴近编码,更能够顺利地过渡到面向对象编程环节。
虽然我们用面向对象编程语言进行编程,但在日常的编程过程中,我们还是会使用面向过程编程,例如实现一个方法,里面写的方法逻辑基本都是面向过程,在面向对象编程语言中也存在大量的面向过程风格的代码。
设计原则
软件设计的最终目的是,是使软件达到“强内聚,低耦合”,设计原则是指导我们软件设计的一些经验总结,对于某些场景下,是否应该应用某种设计模式,具有指导意义。
常用的设计原则:
SOLID 原则
-SRP 单一职责原则SOLID 原则
-OCP 开闭原则SOLID 原则
-LSP 里式替换原则SOLID 原则
-ISP 接口隔离原则SOLID 原则
-DIP 依赖倒置原则DRY 原则
KISS 原则
YAGNI 原则
LOD 法则
设计模式
设计模式是针对软件开发中经常遇到的一些设计问题,总结出来的一套解决方案或者设计思路。大部分设计模式要解决的都是代码的可扩展性问题。设计模式相对于设计原则来说,没有那么抽象,而且大部分都不难理解,代码实现也并不复杂。
经典的设计模式有 23 种。随着编程语言的演进,一些设计模式(比如 Singleton)也随之过时,甚至成了反模式,一些则被内置在编程语言中(比如 Iterator),另外还有一些新的模式诞生(比如 Monostate)
常用的一些设计模式:
单例模式
工厂模式
建造者模式
代理模式
桥接模式
装饰器模式
适配器模式
观察者模式
策略模式
模版模式
职责链模式
状态模式
迭代器模式
过度设计和设计不足
学习了这么多的设计原则和设计模式,想要完全掌握来做好软件设计不是一件容易的事,在设计的过程中,要记住设计为了解决问题,提高软件质量,不要脱离现实,要基于现实的场景进行去设计,场景是会变化的,持续的重构自己的设计也很重要,要具备这种思维去设计,当然也要明白设计原则和设计模式并不能解决所有的问题。
评论