一、面向对象的三个基本要素:
继承、封装、多态。
二、五个基本原则:
1.单一职责原则(Single-Resposibility Principle)
一个类,最好只做一件事。只有一个方向引起它的变化;
个人经验:具体做法就是分模块进行封装,不要写一个功能复杂的类。
2.开放封闭原则(Open-Closed principle)
对扩展开放,对修改封闭的。
1)、对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。
2)、对修改封闭,意味着类一旦设计完成,就可以独立完成其工作,而不要对其进行任何尝试的修改 。
个人经验:如果一个类要修改最好采用属性或方法注入的方式(采用接口),即依赖注入;或者采用继承的方式;
3.Liskov替换原则(Liskov-Substituion Principle)
子类必须能够替换其基类
个人经验:基类是个超级类(抽象类或一个接口),子类实现时要实现一些必要方法;
4.依赖倒置原则(Dependecy-Inversion Principle)
依赖于抽象。具体而言就是高层模块不依赖于底层模块,二者都同依赖于抽象;抽象不依赖于具体,具体依赖于抽象。依赖于抽象,就是对接口编程,不要对实现编程。
个人经验:将具体被调用类的实现封装起来(使用接口或抽象类),提供接口给具体调用的类;
5.迪米特法则(Law of Demeter)
又叫最少知识原则(Least Knowledge Principle LKP),就是说一个对象应当对其他对象有尽可能少的了解,不和陌生人说话。
个人经验:尽量少暴露类的方法和属性。接口隔离,使用多个小的专门的接口,而不要使用一个大的总接口。