面向对象和面向过程最大的区别就是抽象出来可重用的代码,进行封装,代码服用,而不是面向过程的,以基本的函数调用为基础,以及结构化的设计,将具体的方法在父类或者子类实现,这样的话不利于扩展。而是面向接口编程,将父类抽象,实现用其他的类去完成,子类只需要去调用就可以。这样的代码扩展行好,在子类调用就可以根据不同的子类调用不同的实现子类的功能,实现多态。
最重要的几个思想是:优先使用组合,而不是继承;面向接口编程;将变化的部分和不变的部分分离,发现变化封装变化。这三点。
面向对象的设计有以下5个设计原则:其一,单一职责原则,一个类只应该有一个引起它变化的原因
其二,接口隔离,一个类应该调用最小化的接口
其三,开闭原则,对修改关闭,对扩展开放
其三,里氏替换原则,子类可以完全替换父类对象,而不会对父类的调用产生影响
其四,依赖倒置原则,上层的抽象不应该依赖底层,且都依赖于抽象