=>一
里氏替换原则:
子类必须能够替换掉它们的父类(如果不行,那么该子类就没有继承这个父类的必要了)
=>二
开放封闭原则:
        对于扩展它是开放的,对于修改它是封闭的
=>三
单一职责原则
就一个类而言,应该仅有一个引起它变化的原因(否则就因该考虑这个类的职责分离)
=>四
接口分离原则
1>使用多个专门的接口要比使用单一的接口好(就是把多个单一接口组合成一个接口工厂---抽象工厂)
2>一个类对另外一个类的依赖性就当建立在最小的接口上
        3>避免接口污染
=>五
迪米特应法则:
1>如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互关系.
        2>如果其中一个类需要调用另外一个类的某一个方法的话,可以通过第三者转发这个调用
=>六
组合/聚合复用原则
        要尽量使用组合/聚合,而不是使用继承来达到复用目的
              (继承的主要目的不是为了继承代码,而是以继承类型为目的)
=>七
依赖倒置原则
1>抽象不应该依赖于细节.
        2>细节应该依赖于抽象

解决方案 »

  1.   

    =>五 
    迪米特应法则: 
    1>如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互关系. 
            2>如果其中一个类需要调用另外一个类的某一个方法的话,可以通过第三者转发这个调用 
    =>六 
    组合/聚合复用原则 
            要尽量使用组合/聚合,而不是使用继承来达到复用目的 
                  (继承的主要目的不是为了继承代码,而是以继承类型为目的) 
    =>七 
    依赖倒置原则 
    1>抽象不应该依赖于细节. 
            2>细节应该依赖于抽象个人认为这三条蛮经典的。特别是第六条。
      

  2.   

    关于第六条,tij上好像说过,能使用组合就别使用继承。
    另外第五条和第七条也同样不解
      

  3.   

    刚刚上百度查了下,里面举了个例子,企鹅继承了鸟这个类,但企鹅却覆盖了鸟的fly方法,结果造成了鸟类的企鹅子类的fly方法不能飞而违反了里氏替换原则。
    那么“extends”这个词,代表的是子类只可扩展父类,而不要去修改父类???这个有些疑问,是这样么?