开闭原则
1.特征
(1)对于拓展是开放的。这意味着模块的行为是可以扩展的,即当需求发生改变时,软件开发者可以对模块进行拓展,增加新的功能。
(2)对于修改是封闭的。在对模块进行扩展时,不允许改动模块已经存在的类的源代码。
如果一个设计能够同时满足以上两条,则称该设计符合开闭原则。
接口编程
1.定义:(抄的不完整)
先将客户的业务抽取(抽象)出来,作为接口
2.优点:
a.提供了一种抽象
b.设计更容易
c.可扩展、符合开闭原则
3示例:
MusicStudent inplements Student{
exercise();
}
SoftwareStudent inplements Student {
exercise()
}
Student{
Student ms = new MusicStudent()
ms .exercise()
Srudent ss = new SoftStudent()
ss.exercise()
}
4.适用场景
.Set
.Map