设计模式中需要遵循的设计原则

设计模式中的七大原则:

单一职责原则(Single Responsibility Principle,SRP)

单一职责原则又称单一功能原则,指一个类或者模块应该有且只有一个改变的原因。是由罗伯特·C·马丁(Robert C. Martin)于《敏捷软件开发:原则、模式和实践》一书中给出来的。核心就是解耦和增强内聚性。

产生原因及解决方式:

假如说A类有两个功能a和b,当a需求发生改变时,需要开发人员修改A类,但是修改A类的同时有可能导致b功能不可用。也就是说a和b耦合在了一起。从而导致脆弱的设计,影响程序复用性。只需要遵守单一职责原则,将不同的功能封装到不同的类或者模块中就可以了。

开闭原则(Open Closed Principle,OCP)

开闭原则是由Bertrand Meyer 提出的,程序模块应对扩展开放,对修改关闭,应该在不修改源代码的情况下进行扩展。抽象工厂模式就是一个很好的实现。

里氏代换原则(Liskov Substitution Principle,LSP)

LSP是由barbara liskov 提出的,主张使用抽象和多态将设计中的静态结构改为动态结构,从而维持设计的封闭性。

定义:任何父类出现的地方,子类一定可以出现。继承必须保证超类所拥有的性质在子类中仍然成立,也就是说一个子类的实例应该能够替换任何超类的实例时,它们之间才具有LSP的关系。

例如:

public class A{
    public void saySomething(){
        System.out.println("I am A")
    }
}

public class B extend A{
    public void saySomething(){
        System.out.println("I am B")
    }
}

public static void main(String[] args){
    A bb=new B();
    bb.saySomething();
}

 

依赖倒转原则(Dependency Inversion Principle,DIP)

定义:

  • 高层次的模块不应该依赖于低层次的模块,他们都应该依赖于抽象。
  • 抽象不应该依赖于具体实现,具体实现应该依赖于抽象。

为了降低客户和实现之间的耦合,DIP要求程序依赖于抽象接口,不要依赖具体的实现。

 

接口隔离原则(Interface Segregation Principle,ISP)

定制服务的例子,每一个接口应该是一种角色,不多不少,不干不该干的事,该干的事都要干。

合成/聚合复用原则(Composite/Aggregate Reuse Principle,CARP)

合成/聚合复用原则就是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;新的对象通过向这些对象的委派达到复用已有功能的目的。它的设计原则是:要尽量使用合成/聚合,尽量不要使用继承。

在Java中,应尽量针对Interface编程,而非实现类。这样,更换子类不会影响调用它方法的代码。要让各个类尽可能少的跟别人联系,扩展性和维护性才能提高。

最小知道原则/迪米特法则(Principle of Least Knowledge,PLK)

一个对象应对其他对象有尽可能少的了解,降低各个模块的耦合。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值