软件设计六原则

开闭原则:对于扩展是开发的,对于修改是关闭的  
    ·使用接口和抽象类,子类实现接口,接口中的方法作为一个规范,抽象具体的行为,不作内容的实现,实现由子类来完成

里氏倒换原则:父类存在的地方,子类必然会出现,所以尽量不要重写父类的方法
    ·如果一个方法形参使用父类作为参数,并且使用了父类的方法,如果传递的是子类,并且它修改了父类的方法,就很可能出现异常
    ·使用开闭原则,把子类要修改的父类的方法抽出为一个接口,之前的父类和子类分别去实现这个接口,不使用继承关系,这样就能限制传递的类,只使用自己想要的

依赖倒转原则:高层模块不应该依赖于底层模块,两者都应该依赖于抽象;抽象不应依赖于细节,细节,细节应该依赖于抽象
    ·一个类,不应该依赖于其他的具体类,而是把依赖的类抽取为一个接口,依赖这个接口,调用接口的实现,这样需要修改的时候就不需要去修改依赖的类,而是写一个类去实现这个接口,重写里面的方法,这样才符合开闭原则

接口隔离原则:一个实现不应该被迫依赖于它不使用的方法,一个类对另一个类的依赖应该建立在最小接口上
    ·如果一个接口定义了过多的方法,并且它的方法不是每个实现都必须的,那么就会有实现重写了它不该重写的方法
    ·把接口中的方法分类,定义成不同的接口,使用多继承去实现这些接口,每个接口单一职责

迪米特法则:又叫最少知识法则,如果两个实体无需直接通信,那么就不应该发生直接的相互调用,而应该通过第三方转发该调用
    ·如果一个类和多个类之间需要相互调用,应该通过一个第三方类来接受并转发这些请求,降低耦合度

合成复用原则:尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。
    ·通常类的复用分为继承复用和合成复用两种。
        ·继承复用虽然有简单和易实现的优点,但它也存在以下缺点:
            1. 继承复用破坏了类的封装性。因为继承会将父类的实现细节暴露给子类,父类对子类是透明的,所以这种复用又称为“白箱”复用。
            2. 子类与父类的耦合度高。父类的实现的任何改变都会导致子类的实现发生变化,这不利于类的扩展与维护。
            3. 它限制了复用的灵活性。从父类继承而来的实现是静态的,在编译时已经定义,所以在运行时不可能发生变化。
            
        ·采用组合或聚合复用时,可以将已有对象纳入新对象中,使之成为新对象的一部分,新对象可以调用已有对象的功能,它有以下优点:
            1. 它维持了类的封装性。因为成分对象的内部细节是新对象看不见的,所以这种复用又称为“黑箱”复用。
            2. 对象间的耦合度低。可以在类的成员位置声明抽象。
            3. 复用的灵活性高。这种复用可以在运行时动态进行,新对象可以动态地引用与成分对象类型相同的对象。


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值