面向对象及设计原则

9 阅读1分钟

第一、理解隔离变化 从宏观层面来看,面向对象的构建方式更能适应软件的变化,能将变化带来的影响减为最小。 第二、各司其职 1、从微观层面来看,面向对象的方式更强调各个类的责任 2、由于需求变化导致的新增类型不应该影响原来类型的实现,即所谓各司其职 第三、对象是什么 1、从语言实现层面来看,对象封装了代码和数据 2、从规格层面讲,对象是一系列可被使用的公共接口 3、从概念层面讲,对象是某种拥有责任的抽象

设计原则: 一、依赖倒置原则(dip) 1、高层模块(稳定)不应该依赖于底层模块(变化),二者都依赖于抽象(稳定) 2、抽象(稳定)不应该依赖于实现细节(变化),实现细节应该依赖于抽象(稳定) 业务依赖抽象的动物类,保证依赖导致的第一个原则 具体的动物类依赖与抽象的动物类,保证第二个原则

classDiagram
Animal <|-- Duck
Animal <|-- Fish
Animal <|-- Zebra
Animal : +int age
Animal : +String gender
Animal: +isMammal()
Animal: +mate()
class Duck{
+String beakColor
+swim()
+quack()
}
class Fish{
-int sizeInFeet
-canEat()
}
class Zebra{
+bool is_wild
+run()
}

二、开放封闭原则(OCP) 1、对扩展开发,对修改封闭 2、类的模块是可扩展的,但是是不可修改的 三、单一职责原则(SRP) 1、一个类应该仅有一个引起它变化的原因 2、变化的方向隐含着类的责任 四、里氏替换原则(LSP) 1、子类可以替换父类 五、接口隔离原则(ISP) 1、不应该强迫程序使用不需要的方法 2、接口小而完备 简单说就是最少的使用public方法

针对接口编程而非实现编程