全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

Java并发编程解析 |代码设计原则

发布时间:2022-08-03 15:19:00
发布人:qyf

1

  对于一个开发人员来说,了解上述知识只是一个开始,更多的是我们在实际工作中如何运用。个人觉得,了解一些设计原则,并掌握这些设计原则,才能帮助我们写出高质量的代码。

  当然,设计原则是代码设计时的一些经验总结。最大的一问题就就是:设计原则看起来比较抽象,其定义也比较模糊,不同的人对于同一个设计原则都会有不同的感悟。如果,我们只是单纯的抽象记忆这些定义,对于我们编程技术和代码设计的能力来说,并不会有什么实质性的帮助。

  针对于每一个设计原则,我们需要掌握它能帮助我们解决什么问题和可以适合什么样的应用场景。可以这样说,设计原则是心法,设计模式是招式,而编程是实实在在的运用。常见的设计原则有:

  单一职责原则(Single Responsibility Principle, SRP原则): 一个类(Class) 和模块(Module)只负责完成一个职责(Principle)或者功能(Funtion).

  开闭原则(Open Closed Principle, OCP原则):软件实体,比如模块,类,方法等需要支撑 "对扩展开发,对修改关闭"的原则。

  里氏替代原则(Liskov Substitution Principle, LSP原则):子类对象能够替代程序中的父类对象出现的任何地方,并且保证原有逻辑行为不变和正确性不被破坏。

  接口隔离原则(Interface Segregation Principle, ISP原则):接口调用方和使用者只关心自己相关的,不用依赖于自己不需要的接口。

  依赖反转原则(Dependency Inversion Principle,DIP 原则):高模块不用依赖低模块,不用关注其细节,需要通过抽象来互相依赖。

  KISS原则(Keep it Simple and Stupid Principle, KISS原则):保持代码可读和可维护的原则。

  YAGNI原则(You Ai Not Gonna Need It Principle,YAGNI原则):避免过度设计的原则,不用去设计用不到的功能和不用去编写用不到的代码。

  DRY原则(Do Not Repeat Yourself Principle,DRY原则): 减少编写重复的代码的原则,提高代码复用。

  迪米特原则(Law of Demeter Principle, LoD原则 ): 就是我们常说的“高内聚,低耦合”的最佳参考原则,不应该存在直接依赖关系的类之间不要有依赖。

  综上所述,前面五种原则就是我们常说的SOLID原则,其他四种原则也是我们最常用的原则,这些设计原则都是我们的编程方法论。

  写在最后:Java 内存模型通过定义了一系列的 Happens-Before 操作,让应用程序开发者能够轻易地表达不同线程的操作之间的内存可见性。

  在遵守 Java 内存模型的前提下,即时编译器以及底层体系架构能够调整内存访问操作,以达到性能优化的效果。如果开发者没有正确地利用 Happens-Before 规则,那么将可能导致数据竞争。

  Java 内存模型是通过内存屏障来禁止重排序的。对于即时编译器来说,内存屏障将限制它所能做的重排序优化。对于处理器来说,内存屏障会导致缓存的刷新操作。

  在设计Java代码的时候,遵循一些必要的设计原则,也能更好地帮助我们写出好的代码,减少内存开销,对于我们自我提升也有更好的帮助。

  更多关于“java培训”的问题,欢迎咨询千锋教育在线名师。千锋教育多年办学,课程大纲紧跟企业需求,更科学更严谨,每年培养泛IT人才近2万人。不论你是零基础还是想提升,都可以找到适合的班型,千锋教育随时欢迎你来试听。

相关文章

office是什么软件类型?

office是什么软件类型?

2023-10-14
Cloud-IDE 是什么?

Cloud-IDE 是什么?

2023-10-14
主机和端系统之间有什么不同?

主机和端系统之间有什么不同?

2023-10-14
进程和线程有什么联系和区别?

进程和线程有什么联系和区别?

2023-10-14

最新文章

常见网络安全面试题:Windows常用的命令有哪些?

常见网络安全面试题:Windows常用的命令有哪些?

2023-10-09
常见网络安全面试题:根据设备告警如何展开排查?

常见网络安全面试题:根据设备告警如何展开排查?

2023-10-09
常见网络安全面试题:mysql加固呢?(数据库加固)

常见网络安全面试题:mysql加固呢?(数据库加固)

2023-10-09
常见网络安全面试题:windows和linux加固?(操作系统加固)

常见网络安全面试题:windows和linux加固?(操作系统加固)

2023-10-09
在线咨询 免费试学 教程领取