面向对象原则
单一职责原则:就一个类而言,应该仅有一个引起它变化的原因。(没多少个人理解)
开闭原则:软件实体(类、模块、函数等等)应该可以扩展的,但是不可修改。进公司不久时,发现公司项目里有个方法被很多地方用到,但我当时想修改一下,以便达到我当时的某个目的。尽管我的修改不会对其他的地方造成错误影响(很小的修改),幸好当时还是机智的跟导师沟通了下,瞬间就被教育:应该另外写一个公开的方法,而不应该修改原有的。
里氏替换原则:子类必须能够替换掉它们的父类。 这个我感觉是oop的依赖,谈不上原则。构建一个子类对象时,会先执行父类的构造函数,这就是子类能够替换父类的原因。
依赖倒置原则:抽象不应该依赖细节,细节应该依赖于抽象。桥梁模式--很典型的代表。
接口隔离原则:多个专用接口优于一个单一的通用接口。其意思:不要将所有的方法都添加到一个接口中,避免被迫实现某些不需要的方法。对于这种情况,有一种很常见的设计模式:默认适配器,抽出一个父类以空方法的形式实现这些接口,然后子类可以挑选自己需要的方法重写达到目的。