《设计原则》

        本文章属于专栏- 概述 - 《设计模式(极简c++版)》-CSDN博客


        本文说明我对设计原则的理解。

        个人说明:原则是为了目标设定的,设计目标是:对过去的系统稳定,对未来的系统扩展成本低。不管什么原则,都是为了这两个核心目的而服务的。其中开闭原则是为了系统稳定,其他原则的核心思想都是,在扩展时,尽量改动少的逻辑,降低开发成本。原则不是盲目使用和万能的,当某些场景,使用该原则违背了目的,我们需要修改甚至放弃它。记住目的,远比记住原则重要。但是前人总结的原则,可以帮助我们更大概率地实现目的,书中具体的原则如下:

开闭原则

  • 原则解释: 尽量扩展接口,不要修改已有的接口。
  • 背后原因: 减少对已有下游的影响,以及增加系统稳定性。

里氏替换原则

  • 原则解释: 所有使用基类的方法的地方,必须也能使用其子类对象的方法。
  • 背后原因: 保持系统的一致性和可扩展性,减少因子类型替换而引入的意外行为。
  • 个人说明:这说的是方法,不是类本身。比如可以把“一只鸟在飞”具象到“一只老鹰在飞”,而不能把“一群鸟在飞(有老鹰、鸽子、猫头鹰)”具象成任”一群一种xx鸟在飞“。

依赖倒转原则

  • 原则解释:高层模块不应依赖于底层模块,二者都应该依赖于抽象。
  • 背后原因:减少模块之间的耦合,提高系统的灵活性和可维护性。
  • 个人说明:这在实践中不是一个容易履行的原则,依赖于底层模块语意的抽象,部分场景,这个抽象随着业务变化而改变,这是一个对业务经验要求很高的原则。很难能一次抽象完美,在开发过程中不断反思和调整,很重要。另外,不要害怕耦合,耦合是通过减少局部系统的复杂度,增加未来局部系统复杂度,耦合是避免不了的,我们要把精力花在,减少容易改动的逻辑的耦合度,忘记目的地降低耦合,就像用造坦克的方式,造自行车,本质是用战术的勤奋,掩盖战略的懒惰。

接口隔离原则

  • 原则解释: 客户端不应该被迫依赖于它们不使用的接口。
  • 背后原因: 避免接口臃肿,减少类之间的依赖关系,提高系统的灵活性和可维护性。

迪米特原则

  • 原则解释:一个对象应尽可能少地与其他对象发生相互作用,只与其直接的朋友通信。
  • 背后原因:降低对象之间的耦合度,提高系统的健壮性和可维护性。
  • 个人说明:这个原则和接口隔离原则很相似,一个是希望接口之间减少耦合,一个希望类之间减少耦合

合成复用原则

  • 原则解释: 优先使用组合或聚合而不是继承来实现代码复用。
  • 背后原因: 降低类之间的耦合度,提高系统的灵活性,并减少继承带来的局限性。
  • 个人说明:减少继承,放弃多重继承

 

  • 23
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值