JAVA设计模式大总结系列博客(一)设计模式的原则及设计模式结构图


创建软件应用程序是为了满足不断变化和发展的需求。一个成功的应用程序还应该提供一种简单的方法来扩展它以满足不断变化的期望。有一些问题已经被开发人员所发现并总结了解决方案。如果在设计和开发软件时应用一组面向对象的设计原则和模式,则可以避免或解决这些常见问题。

单一职责原则

单一职责原则是一种面向对象的设计原则,该原则指出软件模块应该只有一个被修改的理由。在大多数情况下,编写Java代码时都会将单一职责原则应用于类。
简单的说就是一个方法只解决一个问题,一个累只干相同的事情。不能说我这个方法是计算物体面积的然后我返回它的价格。同样一个猫的类Cat,里面不会产生“汪汪叫”的方法,因为不符合逻辑。这样的好处是,修改代码的时候,我只需要针对不同的方法进行修改,不用去动别的逻辑,而且我这样修改后还不影响整体的性能。单一职责的原则的好处就在于此。

开闭原则

含义:“模块、类和函数应该对扩展开放,对修改关闭。”
也即是说,一旦我们完成了代码的一部分,不应该再修改它,而是应该在它的基础之上继续建设。
不仅要测试正在改变的功能,还要测试它负责的整个功能。这其实就是说,我们在开发一个方法类的时候,对之前已经开发好的功能,不要修改。在已经开发好的基础上进行拓展。所谓的开指的就是拓展,所谓的闭就是已经开发好的代码。

里氏替换原则

Barbara Liskov指出,派生类型必须完全可替代其基类型。里氏替换原则(LSP)与子类型多态密切相关。基于面向对象语言中的子类型多态,派生对象可以用其父类型替换。例如,如果有一个Car对象,它可以在代码中用作Vehicle。里氏替换原则声明,在设计模块和类时,必须确保派生类型从行为的角度来看是可替代的。当派生类型被其父类型替换时,其余代码就像它是子类型那样使用它。从这个角度来看,派生类型应该像其父类型那样表现,不应该破坏它的行为。这称为强行为子类型。(理解起来有点难度,好像没有什么鸟用)

接口隔离原则

“客户端不应该依赖于它所不需要的接口。”实际应用中,接口隔离原则(Interface Segregation Principle,ISP)减少了代码耦合,使软件更健壮,更易于维护和扩展。接口隔离原则最初是由Robert Martin提出的,他意识到如果接口隔离原则被破坏,客户端被迫依赖它们不使用的接口时,代码就会变得紧密耦合,几乎不可能为其添加新功能。(同样不好理解,意思是我继承的接口要根据我实际的需要来,不要搞一大堆我不需要的方法)

依赖倒置原则

为了理解这个原理,我们必须解释耦合和解耦的重要概念。耦合是指软件系统的模块彼此依赖的程度。依赖度越低,维护和扩展系统就越容易。有不同的方法来解耦系统的组件。其中一个办法是将高级逻辑与低级模块分开,如图1-16所示。这样做时,可以尝试让它们都依赖于抽象进而减少二者之间的依赖关系。如此就可以替换或扩展其中任何一个模块而不影响其他模块。
在这里插入图片描述
设计模式结构图:
在这里插入图片描述
设计模式之间的关系
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱吃早餐的程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值