栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java中设计思想和设计原则学习

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java中设计思想和设计原则学习

一、设计思想
  • 先谈谈java语言的四大特性
    • 封装:数据隐藏和数据访问保护,对外暴露有限的可供访问的调用
    • 抽象:隐藏方法的具体实现,调用者只需关心提供了哪些方法和这些方法的定义,不需要关心这些方法如何实现的,Java中常用接口和抽象类来做抽象
    • 继承:你的就是我的,顾名思义,某些对象和抽象定义具有相同的共性,可以通过继承,来实现属性和方法的复用(着重如何简单实现)
    • 多态:对象和抽象可以有多个子类,此时父类应用可以指向多个子类对象(着重调用方如何调用的问题),增加功能的可扩展性和维护性
  • 基于接口而非实现编程的好处
    • 调用者不用关心功能怎么实现的,只关心接口约束
    • 抽象和接口可以使人有预先整体设计能力,使代码更有结构型
    • 接口抽象一般是稳定的,而实现是随时改变的,使人更能专注实现开发
    • 能写出更有扩展性、维护性、灵活性的代码
    • 接口更好的暴露设计功能,但又更好的隐藏实现设计细节
  • 多用组合少用继承
    • 乱用继承,可阅读性差,可维护性差
    • 组合可以减少复杂性,相互组合实现相同的上层业务逻辑,可阅读性好
    • 组合不是功能之间的简单嵌套调用,而是用面向对象和接口编程的思想做更简单的设计,从而提高阅读性和可维护性
  • 提倡充血模式开发,而非贫血模式
    • MVC中,业务层更多的像面向过程编程,业务方法放了所有的业务逻辑,这样如果代码量大的话,维护成本很大,这种就是常见的贫血模式
    • 业务层采用面向对象思想层层抽离,并基于接口编程,这样的代码更灵活,更易读和维护
二、设计原则
  • SOLID原则
    • 单一职责原则(SRP):类和接口对应单一功能
    • 开闭原则(OCP):对扩展开放,对修改关闭
    • 里氏替换原则(LSP):子类对象能够替换程序中父类对象出现的任何地方,并且保证原来程序的逻辑行为不变以及正确性不被破坏(和多态是有区别的)
    • 接口隔离原则(ISP):调用者不应该被强迫依赖它不需要的接口(强制调用者实现,可以延伸到方法的隔离)
    • 依赖反转原则(DIP):高层模块不要依赖低层模块,高层模块和低层模块应该通过抽象来互相依赖。抽象不要依赖具体实现细节,具体实现细节依赖抽象
  • KISS原则

        代码设计尽量简单,在满足业务的情况下,没必要追求底层或者负载的编码。当然如果业务需要考虑到性能等方面,使用底层复杂编码是满足kiss原则的

  • YAGNI原则

        不要做过度设计,在满足当前业务下,做适量设计就可以了,千万不要费时去考虑将来可能存在的虚无缥缈的情况

  • DRY原则(代码重复方面原则)

        需要编写满足语义功能不重复的代码

        需要编写满足代码执行不重复的代码

        尽量编写代码逻辑不重复的代码

        逻辑重复,但语义功能不重复,不违反,相反就违反;代码执行重复也算违反

  • 迪米特法则(LOD)

        不该有直接依赖关系的类/模块之间,不要有依赖;有依赖关系的类/模块之间,尽量只依赖必要的接口/抽象/组件

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1024491.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号