面向对象设计7大原则
单一职责原则
设计目的单一的类
开放-封闭原则
对扩展开放,对修改关闭
里氏替换原则
子类可以替换父类(多态中使用),如:
class A {
void play(){}
}
class b extends A {
void play(){ System.out.println('b');}
}
class c extends A {
void play(){ System.out.println('b');}
}
public static void main(String[] args) throws Exception {
A a;
a = new b();
a.play();
a = new c();
a.play();
}
依赖倒置原则
要依赖于抽象,而不是具体实现;针对接口编程,不要针对实现编程(多态中使用),如:
interface A {
void play();
}
class b implements A {
public void play(){ System.out.println('b');}
}
class c implements A {
public void play(){ System.out.println('b');}
}
public static void main(String[] args) throws Exception {
A a;
a = new b();
a.play();
a = new c();
a.play();
}
接口隔离原则
使用多个专门的接口比使用单一的总接口要好
组合重用原则
要尽量使用组合,而不是继承关系达到重用的目的。
迪米特原则(最少知识法则)
一个对象应当对其他对象尽可能少的了解(可理解低耦合)