定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭
    中心思想:用抽象构建框架,用实现扩展细节
    优点:提高软件系统的可复用性及可维护性