换句话说就是软件可扩展,不可修改。
    如使用装饰者模式,对原有函数进行动态修改。
    开放-封闭原则仍然是要将程序中变化的部分抽象出来,当程序中都是不变的部分,也意味着没有必要对它进行改动,同时它也能直接“拿走”进行拓展。
    在最初编写代码的时候,先假设变化永远不会发生,当变化发生并对我们接下来的工作造成了影响时,可以再对这些变化的地方进行封装。
    经典非必要不优化。