学习嵩山版《Java 开发手册》:编程规约 - 命名风格(P15 ~ P16)

概述

  1. 《Java 开发手册》是阿里巴巴集团技术团队的集体智慧结晶和经验总结,他旨在提升开发效率和代码质量

  2. 《Java 开发手册》是一本极具价值的 Java 开发规范指南,对于提升开发者的综合素质和代码质量具有重要意义

  3. 学习《Java 开发手册》是一个提升 Java 编程技能、了解行业最佳实践和规范的好方法


编程规约 - 命名风格 P15

1、基本介绍
  • 【推荐】如果模块、接口、类、方法使用了设计模式,在命名时需体现出具体模式。

  • 说明:将设计模式体现在名字中,有利于阅读者快速理解架构设计理念。

正例public class OrderFactory;
public class LoginProxy;
public class ResourceObserver;
2、学习补充
  1. OrderFactory:表明这个类是一个工厂类,负责创建订单对象。工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。

  2. LoginProxy:表明这个类是一个代理类,用于处理登录操作。代理模式是一种结构型设计模式,它为一个对象提供一个占位符,以控制对这个对象的访问。

  3. ResourceObserver:表明这个类是一个观察者,用于观察资源的变化。观察者模式是一种行为型设计模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态发生变化时,会通知所有观察者对象。


编程规约 - 命名风格 P16

1、基本介绍
  • 【推荐】接口类中的方法和属性不要加任何修饰符号(public 也不要加),保持代码的简洁性,并加上有效的 Javadoc 注释。尽量不要在接口里定义变量,如果一定要定义变量,确定与接口方法相关,并且是整个应用的基础常量。
// 正例void commit(); // 接口方法签名
String COMPANY = "alibaba"; // 接口基础常量
// 反例public abstract void f(); // 接口方法定义 
  • 说明:JDK8 中接口允许有默认实现,那么这个 default 方法,是对所有实现类都有价值的默认实现。
2、学习补充
  1. 在 Java 接口中定义的变量默认是 public static final 的,其实就是一个常量
interface UserService {// 表示用户的默认状态String DEFAULT_USER_STATUS = "ACTIVE";
}System.out.println(UserService.DEFAULT_USER_STATUS);// 如下代码会编译错误
// java: 无法为最终变量DEFAULT_USER_STATUS分配值
// UserService.DEFAULT_USER_STATUS = "UNKNOWN";
  1. 在 Java 接口中定义的方法默认是 public abstract

  2. 从 Java8 开始,接口中可以包含默认方法

interface MyDefaultInterface {default void defaultMethod() {System.out.println("这是默认方法");}void abstractMethod();
}class MyClass implements MyDefaultInterface {@Overridepublic void abstractMethod() {System.out.println("实现抽象方法");}
}MyClass myClass = new MyClass();
myClass.defaultMethod();
myClass.abstractMethod();
  1. 从 Java8 开始,接口中可以包含静态方法
interface MyStaticInterface {static void staticMethod() {System.out.println("这是静态方法");}
}MyStaticInterface.staticMethod();
  1. 接口定义并结合有效的 Javadoc 注释
/*** 用户服务接口,定义了与用户相关的操作。*/interface UserService {/*** 创建一个新用户。** @param username 用户名* @param password 密码* @return 创建的用户对象*/User createUser(String username, String password);/*** 根据用户名查找用户。** @param username 用户名* @return 查找到的用户对象,如果未找到则返回 null*/User findUserByUsername(String username);/*** 用户服务接口的基础常量,表示用户的默认状态。*/String DEFAULT_USER_STATUS = "ACTIVE";
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/62743.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows安装itop

本文介绍 win10 安装 itop 安装WAMP集成环境前 先安装visual c 安装itop前需要安装WAMP集成环境(windowsApacheMysqlPHP) 所需文件百度云盘 通过网盘分享的文件:itop.zip 链接: https://pan.baidu.com/s/1D5HrKdbyEaYBZ8_IebDQxQ 提取码: m9fh 步骤一&#xff1…

Leetcode - 周赛425

目录 一,3364. 最小正和子数组 二, 3365. 重排子字符串以形成目标字符串 三,3366. 最小数组和 四,3367. 移除边之后的权重最大和 一,3364. 最小正和子数组 本题可以直接暴力枚举,代码如下: …

微服务即时通讯系统的实现(服务端)----(2)

目录 1. 语音识别子服务的实现1.1 功能设计1.2 模块划分1.3 模块功能示意图1.4 接口的实现 2. 文件存储子服务的实现2.1 功能设计2.2 模块划分2.3 模块功能示意图2.4 接口的实现 3. 用户管理子服务的实现3.1 功能设计3.2 模块划分3.3 功能模块示意图3.4 数据管理3.4.1 关系数据…

Matlab Simulink HDL Coder开发流程(一)— 创建HDL兼容的Simulink模型

创建HDL兼容的Simulink模型 一、使用Balnk DUT模板二、从HDL Coder库中选择模块三、为DUT开发算法/功能四、为设计创建Testbench五、仿真验证设计功能六、Simulink模型生成HDL代码 这个例子说明了如何创建一个用于生成HDL代码的Simulink模型。要创建兼容HDL代码生成的MATLAB算法…

【VUE3】【Naive UI】<NCard> 标签

【Vue3】【Naive UI】 标签 title 属性bordered 属性header-style 和 body-style 属性footer 属性actions 属性hoverable 属性loading 属性size 属性type 属性cover 和 avatar 属性description 属性style 属性 【VUE3】【Naive UI】<NCard> 标签 【VUE3】…

Python小白语法基础20(模块与包)

0) 参考文章 python的模块(module)、包(package)及pip_python package-CSDN博客Python之函数、模块、包库_python函数、模块和包-CSDN博客Python函数模块自定义封装及模块嵌套导入(手把手教程)_python如何封装一个模块-CSDN博客 1) 模块与包说明 软件…

选择排序之大根堆

大根堆:树的根节点大于左右子树的结点值,这样就能保证每次从树根取的是最大值 灵魂在于HeadAdjust函数,以某节点为树根通过下落调整为大根堆, 建树思想 就是,从最后一个非终端结点开始调整以该结点为根的子树&#x…

springboot/ssm旅游民宿信息管理系统Java旅游景点管理系统web旅游源码

springboot/ssm旅游民宿信息管理系统Java旅游景点管理系统web旅游源码 基于springboot(可改ssm)vue项目 开发语言:Java 框架:springboot/可改ssm vue JDK版本:JDK1.8(或11) 服务器:tomcat 数据库&…

mfc110u.dll是什么意思,mfc110u.dll丢失解决方法大全详解

mfc110u.dll是Microsoft Foundation Classes (MFC)库的一个特定版本(版本11.0)的Unicode动态链接库文件。MFC是Microsoft为C开发者设计的一个应用程序框架,主要用于简化Windows应用程序的开发工作。这个框架封装了很多Windows API函数&#x…

smb cifs samba smbpasswd 笔记241127

smb cifs samba smbpasswd 笔记241127 SMB、CIFS和Samba都是与文件共享相关的技术,它们在不同的层面上发挥着作用。以下是关于SMB、CIFS和Samba的详细解释: SMB(Server Message Block) 定义:SMB(Server …

debian 11 虚拟机环境搭建过坑记录

目录 安装过程系统配置修改 sudoers 文件网络配置换源安装桌面mount nfs 挂载安装复制功能tab 无法补全其他安装 软件配置eclipse 配置git 配置老虚拟机硬盘挂载 参考 原来去 debian 官网下载了一个最新的 debian 12,安装后出现包依赖问题,搞了半天&…

JAVAWeb之CSS学习

前引 CSS,层叠样式表(Cascading Style Sheets),能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有网页对象和模型样式编辑的能力,简单来说,美化页面。…

全排列内存对齐

46. 全排列 class Solution { public:vector<int> vis;//标记数组vector<int> mid;//中间数组vector<vector<int>> ans;//答案二维数组//dfs搜索和回溯求全排列void dfs(vector<int>& nums,int depth) {if (depth nums.size()) {ans.push_…

从单机缓存到分布式缓存那些事

作者&#xff1a;秦怀 1 缓存前世今生 1.1 故事从硬件开始 Cache 一词来源于 1967 年的一篇电子工程期刊论文。其作者将法语词“cache”赋予“safekeeping storage”的涵义&#xff0c;用于电脑工程领域。当时没有 Cache&#xff0c;CPU 和内存都很慢&#xff0c;CPU 直接访…

macos下brew安装redis

首先确保已安装brew&#xff0c;接下来搜索资源&#xff0c;在终端输入如下命令&#xff1a; brew search redis 演示如下&#xff1a; 如上看到有redis资源&#xff0c;下面进行安装&#xff0c;执行下面的命令&#xff1a; brew install redis 演示效果如下&#xff1a; …

element ui select绑定的值是对象的属性时,显示异常.

需要声明 value-key"value",如果还不行可能是数据类型不一致数字0和字符串0是不一致的. el-select v-model"value" clearable placeholder"Select" value-key"value" style"width: 240px"><!-- <el-option v-for&…

黑马程序员Java笔记整理(day06)

1.继承的特点 2.继承的权限 3. 4.小结 5.方法重写 6.子类构造器 7.兄弟构造器 8.多态 9.小结

IDEA Mac快捷键(自查询使用)

Editing&#xff08;编辑&#xff09; Control Space 基本的代码补全&#xff08;补全任何类、方法、变量&#xff09;Control Shift Space 智能代码补全&#xff08;过滤器方法列表和变量的预期类型&#xff09;Command Shift Enter 自动结束代码&#xff0c;行末自动添…

区块链三级考试题整理

6.以下关于哈希查找的叙述中&#xff0c;正确的是( )。 A. 哈希函数应尽可能复杂些&#xff0c;以消除冲突 B. 构造哈希函数时应尽量使关键字的所有组成部分都能起作用 C. 进行哈希查找时&#xff0c;不在需要与查找表中的元素进行比较 D. 在哈希表中只能添加元素不能删除元…

VPC9527同步整流控制器,相对最大电压检测与强力自供电,与MP6908完全PIN TO PIN

VPC9527 是一款高性能的同步整流控制器,它兼容 CCM 和 DCM 两种模式,最大工作频率高达 700kHz;可 通过 SEL 引脚的逻辑电压来选择 400nS 或 800nS 两个关断检测的屏蔽时间;可通过 VLC 引脚来调整限压导通的 参数,以便与所选同步整流管的参数相匹配,获得适应的最优性能;它…