架构师训练营第一期 - 第二周学习总结
以前一直认为计算机及编程的历史是起始于冯.诺依曼,没想到编程的起源还要比这早200多年。编程从编电线到二进制再到编程语言,编程语言从汇编语言(机器语言)到面向过程的编程语言再到面向对象的编程语言。编程语言的发展经历了面向计算机编程(汇编语言)到面向人编程(高级语言)再到面向对象编程(面向对象的编程语言)这么一个发展规律。这是因为面向对象的编程能够更好的反映客观现实中事物之间的交互方式,它是将现实世界中的事物抽象为一个个对象模型来实现,从而将现实世界的对象与计算机世界的对象进行一一映射。
面向对象的三要素:封装、继承、多态。封装构建了对象的边界,继承实现了接口的重用,多态完成了对象互换。整个面向对象的各种技巧是围绕多态来展开的,掌握好多态才能掌握好面向对象的编程。
在进行软件开发时不能只盯着眼前的需求,只满足于实现现有的需求,因为需求是动态的,时刻都可能发生变化。如果我们用静态的眼光去设计软件,那开发出来的软件就是僵硬的、脆弱的、不可移植的。我们需要的软件必须是高内聚、低耦合的,是可扩展的、强壮的、可移植的,要设计实现这样的软件则要求我们在设计开发的过程中去遵循前人总结出来的一序列设计原则:
开闭原则:对扩展是开放的,对更改是封闭的;不需要修改软件实体(类、模块、函数等),就应该能实现功能的扩展。这里的关键点是通过抽象来实现。
依赖倒置原则:高层模块不依赖低层模块,低层模块也不依赖高层模块,它们都依赖一个抽象:规范/接口,接口属于高层模块、由低层模块实现,高层模块只需要调用定义的接口、不依赖低层模块的实现,从而实现了高层模块的重用。
里氏替换原则:子类继承父类的时候,判断这个继承是否正确需要放到程序的上下文中去看待,凡是能够使用父类的地方如果都可以使用子类进行替换,那么这个子类就是合理的,这个继承就是合理的。
单一职责原则:一个类,只能有一个引起它的变化的原因。
接口隔离原则:一个接口,从客户的需要出发,强调不要让客户看到他们不需要的方法。
评论