类的设计方法

韩的宝贝

韩的宝贝

2016-02-19 18:55

图老师设计创意栏目是一个分享最好最实用的教程的社区,我们拥有最用心的各种教程,今天就给大家分享类的设计方法的教程,热爱PS的朋友们快点看过来吧!

(1) 类名首字母应该大写。字段、方法以及对象(句柄)的首字母应小写。对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母。例如:
  
  ThisIsAClassName
  
  thisIsMethodOrFieldName
  
  若在定义中出现了常数初始化字符,则大写static final基本类型标识符中的所有字母。这样便可标志出它们属于编译期的常数。
  
  Java包(Package)属于一种非凡情况:它们全都是小写字母,即便中间的单词亦是如此。对于域名扩展名称,如com,org,net或者edu等,全部都应小写(这也是Java 1.1和Java 1.2的区别之一)。

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

(2) 为了常规用途而创建一个类时,请采取“经典形式”,并包含对下述元素的定义:
  
  equals()
  
  hashCode()
  
  toString()
  
  clone()(implement Cloneable)
  
  implement Serializable
  
  (3) 对于自己创建的每一个类,都考虑置入一个main(),其中包含了用于测试那个类的代码。为使用一个项目中的类,我们没必要删除测试代码。若进行了任何形式的改动,可方便地返回测试。这些代码也可作为如何使用类的一个示例使用。
  
  (4) 应将方法设计成简要的、功能性单元,用它描述和实现一个不连续的类接口部分。理想情况下,方法应简明扼要。若长度很大,可考虑通过某种方式将其分割成较短的几个方法。这样做也便于类内代码的重复使用(有些时候,方法必须非常大,但它们仍应只做同样的一件事情)。
  
  (5) 设计一个类时,请设身处地为客户程序员考虑一下(类的使用方法应该是非常明确的)。然后,再设身处地为治理代码的人考虑一下(预计有可能进行哪些形式的修改,想想用什么方法可把它们变得更简单)。

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

(6) 使类尽可能短小精悍,而且只解决一个特定的问题。下面是对类设计的一些建议:
  
  ■一个复杂的开关语句:考虑采用“多形”机制
  
  ■数量众多的方法涉及到类型差别极大的操作:考虑用几个类来分别实现
  
  ■许多成员变量在特征上有很大的差别:考虑使用几个类
  
  (7) 让一切东西都尽可能地“私有”??private。可使库的某一部分“公共化”(一个方法、类或者一个字段等等),就永远不能把它拿出。若强行拿出,就可能破坏其他人现有的代码,使他们不得不重新编写和设计。若只公布自己必须公布的,就可放心大胆地改变其他任何东西。在多线程环境中,隐私是非凡重要的一个因素??只有private字段才能在非同步使用的情况下受到保护。
  
  (9) 若不得已进行一些不太雅观的编程,至少应该把那些代码置于一个类的内部。
  
  (10) 任何时候只要发现类与类之间结合得非常紧密,就需要考虑是否采用内部类,从而改善编码及维护工作。
  
  (11) 尽可能细致地加上注释,并用javadoc注释文档语法生成自己的程序文档。
  
  (12) 避免使用“魔术数字”,这些数字很难与代码很好地配合。如以后需要修改它,无疑会成为一场噩梦,因为根本不知道“100”到底是指“数组大小”还是“其他全然不同的东西”。所以,我们应创建一个常数,并为其使用具有说服力的描述性名称,并在整个程序中都采用常数标识符。这样可使程序更易理解以及更易维护。
  
  (13) 涉及构建器和异常的时候,通常希望重新丢弃在构建器中捕捉的任何异常??假如它造成了那个对象的创建失败。这样一来,调用者就不会以为那个对象已正确地创建,从而盲目地继续。
  
  (14) 当客户程序员用完对象以后,若你的类要求进行任何清除工作,可考虑将清除代码置于一个良好定义的方法里,采用类似于cleanup()这样的名字,明确表明自己的用途。除此以外,可在类内放置一个boolean(布尔)标记,指出对象是否已被清除。在类的finalize()方法里,请确定对象已被清除,并已丢弃了从RuntimeException继续的一个类(假如还没有的话),从而指出一个编程错误。在采取象这样的方案之前,请确定finalize()能够在自己的系统中工作(可能需要调用System.runFinalizersOnExit(true),从而确保这一行为)。
  
  (15) 在一个特定的作用域内,若一个对象必须清除(非由垃圾收集机制处理),请采用下述方法:初始化对象;若成功,则立即进入一个含有finally从句的try块,开始清除工作。
  
  (16) 若在初始化过程中需要覆盖(取消)finalize(),请记住调用super.finalize()(若Object属于我们的直接超类,则无此必要)。在对finalize()进行覆盖的过程中,对super.finalize()的调用应属于最后一个行动,而不应是第一个行动,这样可确保在需要基础类组件的时候它们依然有效。
  
  (17) 创建大小固定的对象集合时,请将它们传输至一个数组(若预备从一个方法里返回这个集合,更应如此操作)。这样一来,我们就可享受到数组在编译期进行类型检查的好处。此外,为使用它们,数组的接收者也许并不需要将对象“造型”到数组里。
  
  (18) 尽量使用interfaces,不要使用abstract类。若已知某样东西预备成为一个基础类,那么第一个选择应是将其变成一个interface(接口)。只有在不得不使用方法定义或者成员变量的时候,才需要将其变成一个abstract(抽象)类。接口主要描述了客户希望做什么事情,而一个类则致力于(或答应)具体的实施细节。
  
  (19) 在构建器内部,只进行那些将对象设为正确状态所需的工作。尽可能地避免调用其他方法,因为那些方法可能被其他人覆盖或取消,从而在构建过程中产生不可预知的结果(参见第7章的具体说明)。
  
  (20) 对象不应只是简单地容纳一些数据;它们的行为也应得到良好的定义。

展开更多 50%)
分享

猜你喜欢

类的设计方法

编程语言 网络编程
类的设计方法

遭遇ASP类的事件设计

Web开发
遭遇ASP类的事件设计

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

运用设计模式设计MIME编码类

C语言教程 C语言函数
运用设计模式设计MIME编码类

JavaScript面向对象 “四段式”类设计方法

Web开发
JavaScript面向对象 “四段式”类设计方法

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Photoshop制作设计类海报

电脑网络
Photoshop制作设计类海报

虚化的背景类网页设计欣赏

平面设计 海报设计 广告设计 画报设计 签名设计 服装设计 名片设计 画册设计 版式设计 商标设计
虚化的背景类网页设计欣赏

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

CSS简单的进度条

CSS简单的进度条

设置对VisualBasic数据库连接的动态路径

设置对VisualBasic数据库连接的动态路径
下拉加载更多内容 ↓