1.概念2.特征3.设计软件怎么可以容易维护,又容易出问题的办法?4.何时应对变化 1.概念 软件实体类(类,函数,模块等等),应该可以扩展,但是不可以修改 2.特征扩展开放 修改封闭 3.设计软件怎么可以容易维护,又容易出问题的办法?多扩展 少修改 4.何时应对变化猜测出可能发生的变化种类,然后构造抽象隔离变化 写代码时假设变化不会发生,当变化发生,创建抽象来隔离变化面对需求,程序的改动是通过增加新代码进行,而不是更改现有的所有代码开发人员仅对频繁发生变化的那一部分做出抽象