单一职责原则
- 定义:
一个对象应该只包含单一的职责
,并且该职责被完整地封装在一个类中。
开闭原则(OCP)
对扩展开放,对修改关闭.
(即设计一个模块的时候,应该保证能使得这个模块原先的代码不改变的前提下进行扩展)- 为了满足开闭原则,需要对系统进行抽象化设计,抽象化是开闭原则的关键。
- 开闭原则还可以通过更加具体的“对可变现封装原则”来描述,对可变性封装原则要求找到系统的可变因素并将其封装起来。
- 对每一个模式进行优缺点评价时都会以开闭原则作为一个重要的评价依据,以判断基于该模式设计的系统是否具备良好的灵活性和可扩展性。
如下面的代码就不满足开闭原则:如果要添加新的水果,那么需要修改provider
类。
class apple{
void produce() {
System.out.println("苹果");
}
}
class orange{
void produce(){
System.out.println("橙子");
}
}
class provider{
void produce(apple a){
a.produce();
}
void produce(orange o){
o.produce();
}
}
修改成如下形式,则满足开闭原则。如果需要扩展新的水果,只需要创建新的水果类并实现fruit
的方法,无需修改provider
原来的内容。