java类的设计原则

1、内聚性

类应该描述一个单一的实体,所有的类操作应该在逻辑上相互配合,支持一个连贯性的目标。例如:学生和教职工属于不同的实体,应该定义两个类。

2、一致性

要遵循一定的设计风格和命名习惯。给类、方法、数据域选择有信息量的名字。流行的风格是将数据声明置于构造方法之前,并将构造方法置于方法之前。

选择的名字要保持一致,给类似的操作选择不同的名字并非好的习惯。

如果不想让用户创建类的对象,可以在类中声明一个私有的构造方法。

3、封装性

用private修饰符隐藏其数据域,以免用户直接访问。如果想让数据域可读,可以使用get方法,如果想让数据域可更新,可以使用set方法。

4、清晰性

类应该有一个很清晰的合约,易于解释和理解。

方法应在不产生混淆的情况下凭直觉来定义。

不应该声明一个来自其他数据域的数据域。

5、要用类名来引用静态变量和方法。

6、不要从构造方法中直接传参数初始化静态数据域。最好使用静态的set方法改变静态数据域。

7、类修饰符private(只能在本类中访问),default(默认的只能在同一个包中访问), protected(可以被同一个包中的类以及子类访问),public(不同包中的类也可以访问) 。 子类只能扩大父类中的可访问性,而不能削弱父类中的可访问性。

8、final 表示一个类是终极的,是不能做父类的。同理,一个终极的方法不能被它的子类覆盖。

时间: 2024-10-27 16:39:14

java类的设计原则的相关文章

项目设计之---------- 类的设计原则

类的设计最好遵循5大原则,1.单一指责原则,2.开放封闭原则,3.liskov替换原则,4.依赖倒置原则(抽象不应依赖于具体,相反,具体应该依赖于抽象),5.接口隔离原则(就是接口细分,一个接口内的方法应该是用户都需要的).具体参考<敏捷软件开发>第2部分(第98页) 类的设计估计要用到许多模式,注意参考各种设计模式,具体参考<设计模式>.<大话设计模式>.<敏捷软件开发>等都有说到 项目设计之---------- 类的设计原则

类的设计原则

刚接触设计模式的时候我就被它的优雅给吸引了,发现原来代码还可以这样写,当时的我入了迷. 记得看的第一本设计模式的书籍叫<大话设计模式>,当时的我还不能完全理解里面的思想,但并不妨碍我被它的优雅给吸引,这本书我看了3遍,直到现在感觉还是有点乱,在这整理一下自己的思路,加深一下自己的理解. 类的设计原则: 开闭原则:在面对对象设计的中,应该遵循对扩展开放,对修改关闭. 开闭原则实现方法: 为了满足开闭原则,我们这软件设计中应该将不变的部分抽象出来,定义成不变的接口(或抽象类),模块之间调用通过抽象

13.10类的设计原则

内聚性 类应该描述一个单一的实体,而所有的类操作应该在逻辑上相互配合,支持一个一致的目的. 一致性 遵循标准Java程序设计风格和命名习惯. 封装性 一个类应该使用private修饰符隐藏其数据,以免用户直接访问. 清晰性 为使设计清晰,内聚性.一致性和封装性都是很好的设计原则. 完整性 实例和静态 依赖与类的具体实例的变量或方法必须是一个实例白能量或方法.如果一个变量被类的所有实例所共享,那就应该将他声明为静态的. 继承与聚合 集成和聚合之间的差异,就是is-a(是一种)和has-a(具有)之

Java 面向对象的设计原则

一. 1.面向对象思想的核心: 封装.继承.多态.   2.面向对象编程的追求: 高内聚低耦合的解决方案: 代码的模块化设计: 3.什么是设计模式: 针对反复出现的问题的经典解决方案,是对特定条件下(上下文)问题的设计方案的经验总结,是前人设计实践经验的精华. 4.面向对象设计原则 是面向对象设计思想(法理精神)的提炼(基本宪法),比面向对象思想的核心要素更具有实操性,比设计模式(各种具体法律条文)更抽象. 5.如何最大限度降低耦合度? 少用类的继承,多用接口隐藏实现细节. 避免使用全局变量.

Java类的设计----Object 类

Object类 Object类是所有Java类的根父类如果在类的声明中未使用extends关键字指明其父类,则默认父类为Object类 public class Person { ... } 等价于: public class Person extends Object {. ... }例: method(Object obj){-}//可以接收任何类作为其参数 Object o=new Person; method(o); ==操作符与equals方法 ==操作符与equals方法的区别: =

Java类的设计----访问控制

访问控制 可以对Java类中定义的属性和方法进行访问控制----规定不同的保护等级: public.protected.default.private //仅在类的内部可以访问. private String email; //在同一个包内该属性可以被访问. String major; //在子类中该属性可以被访问, 且该子类可以跨包 protected int salary; //访问权限最高, 无论是否在一个包内, 无论是否是子类都可以被访问. public String name; 访问控

Python 类的设计原则

# 面向对象遵循的原则: SOLID # S(Single Responsibility Principle) # 单一职责原则 # 一个类只负责一项职责 # 好处 # 易于维护, 写出高内聚的代码 # 易于代码复用 # 案例 # 我们之前写的计算器类 # 假设只包含加减乘除运算和结果打印 # 如果往后需要增加, 结果写入文件, 结果参与其他运算, 结果上传服务器... # 是不是每一次都需要去修改此类? 就导致这个类变得特别臃肿; 不利于维护和部分代码复用 # 解决方案 # 计算器只包含, 加

Java类的设计----多态性及其应用

多态性及其应用 多态性 多态-在Java中,子类的对象可以替代父类的对象使用一个变量只能有一种确定的数据类型一个引用类型变量可能指向(引用)多种不同类型的对象 Person p = new Student(); Object o = new Person();//Object类型的变量o,指向Person类型的对象 o = new Student(); //Object类型的变量o,指向Student类型的对象 父类类型的变量可以指向子类的对象 一个引用类型变量如果声明为父类的类型,但实际引用的

Java类的设计----方法的重写、覆盖

方法的重写.覆盖 在子类中可以根据需要对从父类中继承来的方法进行改造-覆盖方法(方法的重置.重写),在程序执行时,子类的方法将覆盖父类的方法. 覆盖方法必须和被覆盖方法具有相同的方法名称.参数列表和返回值类型. 覆盖方法不能使用比被覆盖方法更严格的访问权限. 覆盖方法举例(1) public class Person { public String name; public int age; public String getInfo() { return "Name: "+ name