设计原则与思想

单一职责、开闭原则、里氏替换原则、接口隔离原则、依赖反转原则

单一职责

一个类或模块只负责完成一个职责或功能
但在实际开发中,不同的应用场景、不同阶段的需求背景下,对同一个类的职责是否单一的判断往往不同,所以可以不必过度设计,可以先写一个粗粒度的类,满足业务需求,随着业务的发展,如果粗粒度的类越来越庞大代码越来越多,这个时候就可以将这个粗粒度的类拆分成更细粒度的类即所谓的持续重构??

对扩展开放、修改关闭

在23种经典设计模式中,大部分设计模式都是为了解决代码的扩展性问题存在的。
添加一个新的功能应该是,在已有代码基础上扩展代码即新增,而非修改已有代码

里氏替换原则与多态的区别

里氏替换:子类对象能够替换程序中父类对象出现的任何地方,并且保证原来程序的逻辑行为不变及正确性不被破坏。

  1. 子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法
  2. 子类中可以增加自己特有的方法
  3. 当子类的方法重载父类的方法时,方法的前置条件(方法的输入、入参)要比父类的入参更宽松
  4. 当子类的方法实现父类的方法时(重写、重载、实现抽象方法),方法的后置条件(输出、返回值)要比父类更严格或相等

里氏替换原则主要阐述了有关继承的一些原则,也就是什么时候应该使用继承,什么时候不应该使用继承,它反映了基类与子类之间的关系,是对开闭原则的补充。可以理解为是指导继承关系中子类如何设计的一个原则

接口隔离原则

如果部分接口只被部分调用者使用,那就需要将这部分接口隔离出来,单独给对应的调用者使用,而不是强迫其他调用者也依赖这部分不会被调用的接口

控制反转、依赖反转、依赖注入 三者的区别和联系

  1. 控制反转:通过框架实现控制反转,框架提供一个可扩展的代码骨架,用来组装对象、管理整个执行流程,在利用框架进行开发的时候,只需要往预留的扩展点上,添加代码,利用框架驱动程序流程的执行。控制反转不是一种具体的实现技巧,而是一个设计思想,用来指导框架层面的设计。
  2. 依赖注入:这是一种具体的编码技巧。不通过new()的方式在类内部创建依赖类对象,而是将依赖的类对象在外部创建好之后,通过构造函数、函数参数等方式传递或注入给类使用
  3. 依赖注入框架:基于依赖注入,通过依赖注入框架提供的扩展点,简单配置所有需要创建的类对象、类与类之间的依赖关系,就可以实现由框架来自动创建对象,管理对象的生命周期,依赖注入等原本需要程序员来做的事情。

依赖反转原则

高层模块不依赖低层模块,高层模块和底层模块应该通过抽象来互相依赖。除此之外,抽象不要依赖具体实现细节,具体实现细节依赖抽象。
所谓高层模块和低层模块,在调用链上,高层属于调用者,被调用者属于低层

KISS原则 、YAGNI原则、DRY原则

keep it simple and stupid 尽量保持简单
you ain’t gonna need it 你不会需要它 :不要去射界当前用不到的功能
dont repeat yourself 不要写重复代码

迪米特法则 实现高内聚低耦合

最小知识原则:不该有直接依赖关系的类之间不要有依赖,有依赖关系的类之间尽量只依赖必要的接口
高内聚:指相近的功能应放到同一个类中,不相近的功能不要放到同一个类中,相近的功能往往会被同时修改,放到同一类中修改会比较集中。
低耦合:指在代码中,类与类之间的依赖关系见到那清晰,即便两个类有依赖关系,一个类的代码改动也不会或者很少导致依赖类的代码活动

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值