一、面向对象的3大特征
1.封装 隐藏实现的一些细节 ,提供一种公共的访问方式
2.继承 可以具备某些已经存在的功能
3.多态 对象在不同时刻体现的不同的状态
二、设计思想的区别:
抽象类:是对一组具有相同属性和方法的在逻辑上有关系的一种抽象
is a的关系
接口:对一组具有相同的属性和方法的在逻辑上不相关的事物的一种抽象
like a的关系
举例:
人,学生,老师
三、面向对象设计的基本原则
A:单一职责 系统中的每一个对象应该只有一个单独的职责,所有对象关注的应该是自身职责的完成。
基本思想:高内聚,低耦合
B:开闭原则 一个对象对扩展开放,对修改关闭
基本思想:对类的改动是通过增加代码进行的,而不是修改现有的代码
C:里氏替换原则 在任意父类出现的地方,都可以使用子类来替代
D:依赖注入原则 要依赖于抽象,不要依赖于具体的实现
E:接口分离原则 开发中尽量使用接口,如果依赖具体的实现类,如果实现要改,还得改实现类 不要去使用一些开发中尽量不要提供太多的行为
基本思想:一个接口不要提供太多的行为
F:迪米特原则 一个对象对其他的对象应该尽可能少的了解 基本思想降低耦合
G:优先使用组合而不是继承原则 把大象装进冰箱:
class A {方法(){"打开冰箱"}
}
class B{
方法(){"装进大象"}
}
class C extends A,B{
方法(){"关闭冰箱"}
}
class Demo{
new A().方法()
new B().方法()
new C().方法()
}
基本思想:在服用对象的时候,要优先考虑组合,而不是继承。因为父类的任何改变都可能直接影响子类的行为。
四、设计模式分类
创建型模式:创建对象
结构型模式:对象之间的组成和对象之间的关系
行为性模式:对象的行为