`

未完 java设计: naming convention | 命名规范

阅读更多
   
应该遵循的规范:
类/接口/属性名,使用名词或形容词;
方法名使用动词。
Java Naming Conventions:
http://www.oracle.com/technetwork/java/codeconventions-135099.html


Ixxx、Service、servieimpl、dao、daoimpl,真的有必要吗?
Naming the Java Implementation Classes:
http://isagoksu.com/2009/development/java/naming-the-java-implementation-classes/
http://stackoverflow.com/questions/2814805/java-interfaces-implementation-naming-convention


对象的 State & Behavior:
state is stored in fields and behavior is shown via methods
对象的属性及其对应的值构成对象的状态:An object's state is defined by the attributes of the object and by the values these have.通俗的讲可以将state理解成对象的属性(字段)。
很多的设计模式中,都遵循“separate state and behavior”的原则。state即字段,behavior即方法,既然要分离出对象的行为(方法)来,而类/接口的名称约定一般为名词,所以,分离出的行为接口的命名,一般也就遵循“动词变名词”的原则,如发送email有个方法叫send,分离出发送行为后,可以将其命名为EmailSender;某类Xxx有个print方法,分离出打印的行为后,可以将其命名为XxxPrinter等;分离出账单类Bill的计算账单方法calculate()后,可以将分离出的"计算账单"这一行为的接口命名为BillCalculator等,诸如此类。



包的划分原则:Package by feature or layer?
http://stackoverflow.com/questions/11733267/is-package-by-feature-approach-good
包的划分,可以按 feature(功能)来,也可能按 layer(action/controller/service/dao/model 等)来。
但有一点需要注意的是,在同一层级上,不要混合使用 feature-based 和 layer-based 划分策略,不然容易造成混乱。
一个建议的划分方法是,先按 feature 划分,再在各个 feature 下按 layer 来划分。如:
引用
com
--xxx
----email
------composer
--------service
--------dao
--------model
--------and so on
------sender
--------service
--------dao
--------model
--------and so on

问题,分离 Api(interface) 和 Impl 的包结构,属于 feature-based 还是 layer-based?




DB 的 table name 及其对应的 Java Entity name,应该是写作单数形式(Singular)还是复数形式(Plural)?
http://stackoverflow.com/questions/808992/singular-or-plural-database-table-names
引用
Java Entity 的类名,请一律使用单数形式;也包括 enum 的名字,参见 http://stackoverflow.com/questions/15755955/java-enums-singular-or-plural
而对应的 DB 的 table name,建议使用复数形式。
分享到:
评论

相关推荐

    JNDI(Java Naming and Directory Interface)是SUN公司提供的一种标准的Java命名系统接口

    JNDI(Java Naming and Directory Interface)是SUN公司提供的一种标准的Java命名系统接口,JNDI提供统一的客户端API,通过不同的访问提供者接口JNDI SPI的实现,由管理者将JNDI API映射为特定的命名服务和目录系统,...

    Oracle Solaris 9 - System Administration Guide: Naming and Direc

    Oracle Solaris 9 - System Administration Guide: Naming and Directory Services(FNS and NIS+) 本文档是 Oracle Solaris 9 系统管理指南的部分内容,主要介绍了命名和目录服务,包括 File Name Service(FNS)和...

    gulp-check-file-naming-convention:检查文件名是否符合命名约定

    check-file-naming-convention插件 用法 首先,安装gulp-check-file-naming-convention作为开发依赖项: npm install --save-dev gulp-check-file-naming-convention 然后,将其添加到您的gulpfile.js : var ...

    Library Expert Land Pattern Naming Convention.pdf

    IPC-7351指导硬件开发中PCB封装库的相关设计,根据不同的封装类型定义不同的焊盘形式,以便实现可...附件中资源为Library Expert Land Pattern Naming Convention,与IPC-7351B相比有很大提升,命名规则更加贴近使用。

    Oracle Solaris 11 Oracle Solaris Administration:Naming and Direc

    4. ** Naming Service Switch (NSS)**:NSS是Solaris中的一个功能,它允许系统在多个命名服务之间进行选择,如passwd、group和hosts文件,以及DNS、NIS和LDAP等。通过编辑`/etc/nsswitch.conf`文件,可以定义服务...

    中国联通网络资源命名规范

    这份文件是关于中国联通公司制定的企业标准QB/CU044-2011,全称为《中国联通OSS网络资源命名规范》(China Unicom OSS Naming Specification for Network Resources, 版本2.0),于2011年1月30日正式发布并实施。...

    精通Java EE:精通Java EE 整合应用案例\源代码第五章

    5. **JNDI(Java Naming and Directory Interface)**:JNDI在Java EE中用于查找和绑定资源,如数据源或EJB。开发者会学习如何使用JNDI查找服务并进行依赖注入。 6. **JTA(Java Transaction API)**:在多组件协作...

    精通Java EE:精通Java EE 整合应用案例随书光盘案例数据库部分

    8. **JNDI(Java Naming and Directory Interface)**:提供命名和目录服务,便于查找和管理Java EE应用中的资源。 光盘中的数据库部分可能包含以下内容: - 数据库设计:包括ER图(实体关系图),表结构设计,...

    Innovus-naming-convention.docx

    本篇文章将深入探讨"Innovus-naming-convention.docx"文档中提及的命名约定,尤其是与时钟树优化(Clock Tree Optimization, CTO)相关的规则。 首先,我们关注"cto_st"命名前缀。当执行时钟树综合或优化时,系统会...

    Javax.naming.NameNotFoundException

    这个异常通常在Java命名和目录接口(JNDI)中出现,当我们尝试查找一个在命名上下文中不存在的名称时,就会抛出这个异常。JNDI是一个API,它允许Java应用程序查找和操作各种类型的命名和目录服务,例如在应用服务器...

    Java命名规范

    ### Java命名规范详解 #### 一、概述 Java命名规范是为了确保代码的可读性和一致性而制定的一套规则。良好的命名习惯有助于团队成员之间更好地理解和维护代码。本篇将详细介绍Java中的各种命名规则及其背后的原理...

    PyPI 官网下载 | naming-0.2.0.tar.gz

    《PyPI官网下载 | naming-0.2.0.tar.gz:深入理解Python命名规范库》 在Python编程中,遵循良好的命名规范对于代码的可读性和维护性至关重要。PyPI(Python Package Index)是Python开发者获取和分享软件包的主要...

    java源码:开源LDAP浏览器 JXplorer.zip

    JXplorer使用了JNDI(Java Naming and Directory Interface)来与LDAP服务器交互。JNDI是Java平台的标准API,为访问各种命名和目录服务提供了一致的接口。开发者可以从源码中学习如何利用JNDI进行LDAP连接、搜索、...

    Java语言编码规范 (Java Code Conventions)

    9. 命名规范(Naming Conventions) 命名规范是 Java 程序的基本组成部分。命名规范用于确保程序的可读性和可维护性。常见的命名规范包括:类名、变量名、方法名等。 10. 编程惯例(Programming Practices) 编程...

    java源码:Java学生信息管理系统源码包.rar

    7. **JNDI服务**:如果系统使用了应用服务器如Tomcat,可能会涉及到Java Naming and Directory Interface (JNDI) 来查找和绑定资源。 8. **国际化与本地化**:对于一个成熟的系统,往往需要支持多语言,因此可能...

    java源码:Java中的EJB编程实例代码.rar

    Java中的EJB(Enterprise JavaBeans)是Java平台上用于构建企业级应用的...同时,这些示例也可以帮助你掌握EJB与JNDI(Java Naming and Directory Interface)、JTA(Java Transaction API)和其他Java EE服务的集成。

    genicam 标准文件

    3. **Feature Naming Convention**:Genicam标准规定了一套命名规则,使得开发者能容易地理解和访问设备的特性,如使用"ExposureTime"表示曝光时间,"Gain"表示增益。 4. **XML配置文件**:每个Genicam兼容的设备...

    java源码:入门级j2ee开源项目 simplejee.zip

    - **JNDI(Java Naming and Directory Interface)**:用于查找和绑定分布式环境中的对象。 - **JTA(Java Transaction API)**:处理分布式事务的API。 - **JMS(Java Message Service)**:消息传递接口,支持异步...

Global site tag (gtag.js) - Google Analytics