学习总结 - 第 2 周
周四老师介绍了2个自身做为架构师的案例,特别是第一个案例,讲的时间比较长,我的理解是当有机会来临时,需要全力以赴,敢于承担和挑战公司给予的重要角色,并将其做好,成为公司的核心成员。和第一周的“悟”类似,这次的主题是“局”,需要清晰局势,把握局势。
周四老师还介绍了软件的发展史,讲解了面向对象的编辑思想是如何一步一步演化过来的。面向对象的三大特性,封装(隐藏实现)、继承(接口重用)、多态(对象互换),老师讲到其他这3太特性在面向过程中也是存在的,当然我们比较面向过程和面向对象语言,这三大特性面向对象更加安全、纯粹,与大自然的客观对象更加贴切一致。
还有一句话印象很深刻,面向对象编辑不是使用面向对象的编程语言进行编程,而是利用多态特性进行编程。反观现实的开发,确认很多时候只是使用了面向对象的编程语言,而没有好好利用面向对象的编辑思想。当然,现在的框架帮我们做了很多。
周六老师对面向对象设计的目的和原则进行了详细的讲解。
面向对象设计的目的:“高内聚、低耦合”,使用软件易扩展、更强壮、可移植、更简单。避免僵硬、脆弱、不可移植、导致误用、晦涩、过度设计。
为了达到面向对象设计的目的,老师花了很大篇幅讲了面向对象设计的五大原则:
原则一:开/闭原则(OCP),对于扩展是开放的,对于更改是封闭的。不需要修改软件实体(类、模块、函数等),就应该能实现功能的扩展。可通过策略模式、适配器模式、观察者模式进行抽像,达到开/闭原则。
原则二:依赖倒置原则(DIP),高层模块不能依赖低层模块,而是大家都依赖于抽象;抽象不能依赖实现,而是实现依赖抽象。同好莱坞规则思想一致。
原则三:Liskov替换原则(LSP),子类型必须能够替换掉它们的基类型。
原则四:单一职责原则(SRP),又称“内聚性”原则,一个模块的组成元素之间的功能相关性。SRP指出如何设计一个类,只能有一种原因才能促使类发生改变。
原则五:接口分离原则(ISP),不应该强迫客户程序依赖他们不需要的方法。ISP指出应该如何设计一个接口,从客户的需求出发,强调不要让客户看到他们不需要的方法。
老师讲解了五大原则,设计模式是基于这五大原则的目标来设计的解决方法,因为我没有什么开发经验,这块后续还需要多花时间,熟悉下设计模式。确实听了老师的设计原则,发现程序的代码更加优美和灵活。正如老师说的,优秀程序员最希望看到的事情就是需求变化,需求变化才能体现出良好设计的优势,才能看出系统的扩展性、健壮性、易维护性。
评论 (1 条评论)