未完 java设计: naming convention | 命名规范 博客分类: Java Foundation设计模式 java设计naming convention命名规范
程序员文章站
2024-03-09 13:31:47
...
应该遵循的规范:
类/接口/属性名,使用名词或形容词;
方法名使用动词。
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://*.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://*.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
--xxx
------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://*.com/questions/808992/singular-or-plural-database-table-names
引用
Java Entity 的类名,请一律使用单数形式;也包括 enum 的名字,参见 http://*.com/questions/15755955/java-enums-singular-or-plural
而对应的 DB 的 table name,建议使用复数形式。
而对应的 DB 的 table name,建议使用复数形式。
推荐阅读
-
爱情的All In 博客分类: 个人 情感生活
-
未完 Java Collections | 容器 博客分类: Java Foundation java容器collection
-
Java自动化工具Ant的基础使用教程
-
Linux性能监控学习笔记 博客分类: 读书Linux linux读书
-
java网上商城项目第1篇之用户注册模块
-
Java 覆盖equals时总要覆盖hashcode
-
Editable Select 可编辑select 博客分类: Ajax/JS/JSP/HTML5 jQueryJava
-
微信支付H5调用支付详解(java版)
-
Java实现仿微信红包分配规则
-
Java如何在List或Map遍历过程中删除元素