懂了设计模式,你就懂了面向对象分析和设计(OOA/D)的精要.

设计模式之于面向对象系统的设计和开发的作用就犹如数据结构之于面向过程开发的作用一般,可以说,不会设计模式的编码人员不能称之为工程师。


面向对象系统的分析和设计实际上追求的就是两点:高内聚和低耦合。


自从程序诞生之初,就面临着来自耦合性内聚性以及可维护性可扩展性重用性灵活性等多方面的挑战。


而面向对象是为了解决系统的可维护性,可扩展性,可复用性等以上问题而出现的。


面向对象的好处: 可维护,可复用,可扩展,灵活性好。(通过封装、继承、多态把程序的耦合度降低)


面向对象的编程,并不是类越多越好,类的划分是为了封装,但分类的基础是抽象,具有相同属性和功能的对象的抽象集合才是类。


用了继承后,并且肯定这个继承有意义,就应该要成为子类的模板,所有重复的代码都应该上升到父类去,而不是让每个子类都去重复。


面向对象设计其实就是希望做到代码的责任分解。


学会用对象的职责而不是用结构来考虑问题。(合成复用原则,多用组合/聚合代替继承)