java 设计原则

java的设计有六大原则:

1:单一职责原则[SRP]

定义:

单一职责原则:应该有且仅有一个原因引起类的变更

There should never be more than one reason for a class to change

2:里氏替换原则[Liskov Substitution Principle]

3:依赖倒置原则[]

4:接口隔离原则[ISP]

Interface Segregation Principle

接口隔离原则是对接口进行规范约束,其包含以下四层含义:

4.1:

接口尽量要小。这是接口隔离原则的核心定义,不出现臃肿的接口(Fat Interface)

有的时候,你不会那么轻易地看出,是不是还需要再拆分为两个接口呢?

可以参考下面的原则

4.1.1:根据接口隔离原则拆分接口时,必须首先满足单一职责原则。

接口要高内聚。什么是高内聚?高内聚就是提高接口、类、模块的处理能力,减少对外的交互

4.1.2:

定制服务。一个系统或系统内的模块之间必然会有耦合,有耦合就要相互访问的接口(并不一定就是Java 中定义的Interface,也可能是一个类或者是单纯的数据交换),我们设计时就需要给各个访问者(也就客户端)定制服务

4.2:

接口设计是有粒度的。接口的设计粒度是越小系统越灵活,这是不争的事实,但是这就带来的结构的

复杂化,开发难度增加,维护性降低,这不是一个项目或产品所期望看到的,所有接口设计一定要注意适

度,适度的“度”怎么来判断的呢?根据经验和常识判断!

接口隔离原则是对接口的定义也同时是对类的定义,接口和都尽量使用原子接口或原子类来组装,但

是这个原子该怎么划分是这个模式也是设计中的一大难题,在实践中应用时可以根据以下几个规则来衡量:

一个接口只服务于一个子模块或者业务逻辑。

通过业务逻辑压缩接口中的public 方法。接口时常去回顾,尽量做让接口达到“满身筋骨肉”,而不

是“肥嘟嘟”的一大堆方法。

已经被污染了的接口,尽量去修改,若变更的风险较大,则采用适配器模式进行转化处理。

了解环境,拒绝盲从。每个项目或产品都有特定的环境因素,别看到大师是这样做的你就照抄,千万

别,环境不同的,接口拆分的标准就不同。深入了解的业务逻辑,最好的接口设计就出自的你的手!

4.3:

4.4:

5:迪米特法则[LKP or LoD]

Least Knowledge Principle

迪米特法则的核心观念就是类间解耦,弱耦合,只有弱耦合了以后,类的复用率才可以提高,其要求的结果就是产生了大量的中转或跳转类

6:开闭原则[OCP]

高内聚:

高内聚就是提高接口、类、模块的处理能力,减少对外的交互

低耦合:

我的理解:就是被调用者不应该把太多的方法暴露给调用者。


从java城堡游戏 学习设计原则 目录概述城堡游戏v1.0v1.0中存在的代码设计问题城堡游戏v2.0城堡游戏v3.0最终代码 概述 学习java语言已经有三天时间了,因为此前有C/C++语言的基础,对面向对象这些概念还比较清楚,学习java基础要轻松一点。虽然是刚刚接触,但是能明显感受到java语言写起来要比C++轻松不少,而且语言的生态也明显更好。 这次的学习案例来自翁恺老师的MOOC面向对象程序设计——java语言,B站也有这套课程的完整视频,传送门。本次要讨论的主题是设计原则,这个主题很大,不过用来说明问题的小程序的代码量并不大,是 阅读详情

相关推荐

【Java】六大设计原则和23种设计模式

代理模式给某一个对象提供一个代理对象并由代理对象控制对原对象的引用。通俗的来讲代理模式就是我们生活中常见的中介。举个例子来说明:假如说我现在想买一辆二手车,虽然我可以自己去找车源,做质量检测等一系列的车辆过户流程,但是这确实太浪费我得时间和精力了。我只是想买一辆车而已为什么我还要额外做这么多事呢?于是我就通过中介公司来买车,他们来给我找车源,帮我办理车辆过户流程,我只是负责选择自己喜欢的车,然后付钱就可以了。

weixin_71491685的博客 2094

Java设计原则

Java设计原则

wys的专栏 1095

西门子Industrial Copilot实战:5个工业场景下的AI效率提升案例

本文通过五个工业场景实战案例,深入解析西门子Industrial Copilot如何将工业智能转化为实际生产力。从自动化配置、预测性维护到能源优化与人机交互,这位AI助手显著缩短工程周期、提升设备可用率并降低运营成本,展示了其在工业领域系统化、工程化的落地价值。

3c4x5z6v7b的博客 929

JAVA设计原则

今天重温了下java设计模式,有了一些感悟,给大家分享下。先来一张图给大家总体看下。以上就是今天的分享啦!

qq_45687495的博客 716

LM1875官方电路图元件作用解释说明以及电路调校

R1是为C1提供充放电回路用的电阻,这是老外工作严谨的地方,其实接好电位器之后直流通路就已经存在了,这个加上只能防止最恶劣情况时也能把C1的电能放掉,尽管只有一点点 C1是输入电容,主要作用是隔离前后级的直流信号,但是这个电容对音质的影响很大,可以换用不同的品牌和容量来部分修改音质和音色 R2提供LM1875正输入端的直流电平控制点,接地就表示在理想情况下Lm1875的输出直流电平是0V;还有一个作用就是确定放大器的交流输入阻抗为电阻值。 R3、R4是反馈电阻,这个电路的放大倍数为R4/R3+1=21倍。.

m0_50862404的博客 1万+

CAN通信:EB中配置CAN驱动,配置参数解析

以S32K314芯片说明,其他芯片不同,参数配置也有差异。

zhangxiaio1的博客 2174

探究Java的设计原则

/ 今日科技快讯 /瑞幸咖啡将支付1.8亿美元,就美国监管机构对它做出的会计欺诈指控达成和解。瑞幸咖啡董事长表示:“与美国证券交易委员会达成的这项和解反映了我们的合作和为补救而作...

郭霖 991

LangGraph 中 Human-in-the-loop

摘要:本文探讨了在自主AI Agent系统中实现"人工介入关键节点"(HIL)的技术方案,主要基于LangGraph框架构建。针对Agent可能执行高风险操作(如删除数据库)的问题,提出通过断点机制在关键节点暂停流程,实现人工审批后再继续执行。具体实现包括:(1)使用checkpointer组件持久化状态;(2)通过interrupt_before/after参数设置断点;(3)支持三种交互模式:批准、编辑和输入。文章还提供了代码示例,展示如何在不同场景(如工具调用)中动态触发人工审核机

qq_52053775的博客 154

Java中的七大设计原则

Java中的七大设计原则,也称为SOLID原则,是为了让程序(软件)具有更好的代码重用性,可读性,可扩展性,可靠性,使程序呈现高内聚,低耦合的特性。

微笑听雨 1万+

金融科技风险管理实践之监管评级全解

内部审计是公司治理的四大基石之一。因此,建议银行以问题与结果为导向,推动科技风险分级分类管理,重点防范重大中断、重大事件,并进一步加强科技风险评估与监测,加强对重要管理流程、重要系统、网络等重点管控环节的评估监测,对于评估发现的问题,及时完善管理手段,举一反三解决问题,提高风险管理的有效性。投入更多审计资源,加大对重点机构、薄弱环节、重要领域的审计力度,如:加强对境外机构的审计,加强网络安全、数据安全、业务连续性等高风险领域审计,加强数字化转型过程中的风险审计,以高水平安全,为数字金融高质量发展保驾护航。

银行信息系统应用架构详解 457

YOLO26科研升级:BiFPN双向特征金字塔,让多尺度特征融合精度再突破

在目录下,新建AddModules文件夹,将bifpn.py放入其中。

LXY_LOVE36的博客 559

JAVA中7大设计原则

学习设计原则,学习设计模式的基础。在实际开发过程中,千万不能形成强迫症。碰到业务复杂的场景,我们需要随机应变。而且不是一定要求所有代码都遵循设计原则,我们要考虑人力、时间、成本、质量,不是刻意追求完美,要在适当的场景遵循设计原则,体现的是一种平衡取舍,帮助我们设计出更加优雅的代码结构。原文链接:https://blog.youkuaiyun.com/little__SuperMan/article/details/104596393。

weixin_47600732的博客 393

用Excel或WPS做两独立样本的T检验

一般情况下收集数据时常用的是Excel或者WPS,但统计时却用SPSS等软件进行统计学分析,经常很多人找不到SPSS的安装包,或者苦于正版激活或忘记教程,其实Excel或WPS自带函数就足够了,均数、标准差以及统计检验都是一个函数而已。解释:先做F检验,如果F>0.05就做T检验,Ttset里的数据为两组的数据的比较,结果如下。A组的均数计算 =AVERAGE(B2:B6)A组的标准差计算 =STDEV(B2:B6)B组的标准差计算=STDEV(B7:B19)分组 数值 A组均数 A组标准差 p值。

Mrrunsen的博客 6754

Java中的7大设计原则

讲到java中的设计原则,首先要知道设计原则的出现,在20世纪60年代。当时软件开始大多数以个人作坊式的开发,从而导致软件的可靠性较差,从而出现了“软件危机”。

qq_42448128的博客 1201

【DRAM存储器六十二】DDR5介绍--引脚和基本功能简介

详述DDR5与DDR4的引脚区别和DDR5基本功能

highman110的博客 531

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【Java】项目设计原则与Java设计方法指南

本文档旨在系统性地介绍软件项目开发中应遵循的核心设计原则,以及在Java开发实践中常用的设计方法(设计模式)。其主要目的是为开发团队提供一套共同的设计语言和指导方针,以提升代码质量、可维护性、可扩展性和团队协作效率。范围涵盖了面向对象设计的基本原则和一些关键的GoF(Gang of Four)设计模式在Java环境下的应用。

DHY857792565的博客 907

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

JAVA六大设计原则

JAVA六大设计原则

qq_65032048的博客 396

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Java六大设计原则

Java六大设计原则: 一: 类单一职责原则:一个类只有一个引起这个类变化的原因。即一个类只完成一个功能,如果做不到一个类只完成一个功能,最少要保证一个方法只完成一个功能。二:依赖倒置原则:高层组件应该依赖抽象而不依赖具体,即面向接口编程,一般依赖的成员变量或者参数都应该是抽象的不应该是具体的。三:里氏代换原则:凡是父类出现的地方都可以用子类代替并且原功能没有发生变化,子类不应该覆盖父类的非抽象方法

pf_1308108803的博客 265

RESTful API的设计原则与这些原则在Java中的应用

RESTful API 是基于 REST(Representational State Transfer) 架构风格设计的 API,其核心目标是提高系统的可伸缩性、简洁性和可维护性

专注于技术分享 1497

Java面向对象设计原则

在软件设计领域中,普遍认为一个好的软件设计,应该具有以下特性:1)可扩展性; 2)灵活性; 3)可插入性。 因此,针对上面三个特性,我们在进行Java程序设计的时候,应该遵守以下七个设计原则:单一性原则、开闭原则、里氏替换原则、依赖倒置原则、接口隔离原则、组合聚合复用原则、迪米特原则。 单一性原则 一个类只负责一项职责。这样可以降低类的复杂度,提高类的可读性,提高系统的可维护性。如果单...

zhongliwen1981的专栏 503

java设计原则

关于JAVA设计原则的个人理解 一、单一职责原则 所谓单一职责,我的理解是每个类只完成其应该完成的行为业务,除了过于简单的职责,一个类可以兼任,复杂的职责必须独立完成,再创建单独的一个类来完成。 二、开闭原则 三、聚合/组合复用原则 四、迪米特法则 五、依赖倒置原则 六、里式替换原则 七、接口隔离原则 ...

SwjLAAG的博客 140

Java 设计原则及24种设计模式

1. 职责单一原则2. 里氏替换原则3. 依赖倒置原则4. 接口隔离原则5. 迪米特法则6. 开闭原则。

jiruifeng_1的博客 326

Java面向对象设计原则概述

Java设计原则概述

liubin5620的博客 246

java—01 设计模式&设计原则(I)

研发 --> 架构 (定义、例子,框架或接口中用过相关的开发)Single Reposibility Principle定义:一个类或者模块/服务/架构只负责完成一个职责。电商拆分成订单、库存、物流、支付。LSP:Liskov Substitution Principle定义:多用组合,少用继承。(在自己的类里引用其他的类(new一个类))含义:(1)里氏替换原则是针对继承而言的,如果继承是为了实现代码重用,也就是为了共享方法,那么共享的父类方法就应该保持不变,不能被子类重新定义。子类只能通过新添加方法来

QiAn的博客 1504
上一篇: java 数字格式化
下一篇: web 开发中遇到的乱码问题
programloverjack
博客等级 码龄17年 5粉丝 252原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值