java.util.Calendar是否符合“开放—封闭”原则?为什么?

解决方案 »

  1.   

    有点意思,个人意见是符合原则。开放封闭原则有两点:一,不可更改实现方法,二是可扩展。Calendar是一个abstract类,可扩展自不用说。关键看是不是能更改: 
    Calendar没有public constructor,用factory方式提供实例,getInstance方法又无法被覆写。所以子类是无法更改其原来的实现类。除非重新写一个新的Calendar类才行。
    虽然有部分方法可以被覆写,但其主要的实现类无法更改,还是原来的Calendar,只是更改了一些次要的行为方法。基于以上两点,我说是符合的。
      

  2.   

    Java.util.calendar不符合“开-闭”原则。因为它对星期的运算只适用于公历。如果要加入中国阴历,必须要做大量修改才能适用。