设计类java
① java类、方法的设计
在Java面向对象编程的过程中,类的设计是一个很有挑战性的工作,不同的人可能对于类的理解不一样,设计出来的类也可能不一样,总结出以下几点关于类设计方面的建议供开发人员参考:
1.永远保持数据私有
保持数据的私有是设计类时,必须重点考虑的问题。保持私有的数据有利于封装。虽然为了保持数据的私有,需要编写设置器与访问期,但这比起不是数据私有要安全的多。
2.永远初始化数据
Java不提供对本地变量的初始化,但它会初始化对象中的实力字段。在设计类时尽量不要依赖于系统的默认值,最好明确的初始化变量。可以通过赋值或构造器对变量进行初始化。
3.不要在一个类中使用太多的基本类型
把相关的基本类型利用封装的功能,设计成一个单独的类;在引用时也同样尽量使用一个单独的类封装同一功能的类似字段。这样做的结果可以使类更易于理解和修改。
例:在一个类中需要引入人的某些属性
Private String peopleName;
Private String peopleSex;
Private String peopleBirthday;
在正中情况下,可以设计一个People类来实现这些字段的封装,在新设计的类中,只需要一个类的实例:
People aPeople = new People();
就可以得到相关的属性值。
4.尽量使类的功能单一化
这句话很难用一句明确的语言来形容,什么样的类是功能单一的呢,可以这样理解,例如设计一个类时,尽量不要将太多的功能放到一起。
② JAVA如何设计实体类
如果说的是对应数据库信息的实体类,……对Java来说,和普通的类一模一样。只是每个类设计者有不同的用法,比如说集合类,作为各种数据结构使用。实体类主要作为存储数据库信息使用。两者Java上有区别么?没有,只是代码不一样,用法不一样。
③ JAVA23种设计模式
一、大约分为三类:
1、创建型模式(5种):工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式。
2、结构型模式(7种):适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组合模式,享元模式。
3、行为型模式(11种):策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
二、设计模式遵循的原则有6个:
1、开闭原则(OpenClosePrinciple)
对扩展开放,对修改关闭。
2、里氏代换原则(LiskovPrinciple)
只有当衍生类毁吵茄可以替换掉基类,软件单位的功能不受到影碰迹响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。
3、依赖倒转原则(DependenceInversionPrinciple)
这个是开闭原则的基础,对接口编程,依赖于抽象而不依赖于具体。
4、接口隔离原则(InterfaceSegregationPrinciple)
使用多个隔离的借口来降低耦合度。
5、迪米特法则(最少知道原则)(DemeterPrinciple)
一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立。
6、合成复用原则(CompositeReusePrinciple)
原则是尽量使用合成/聚合的方式,而不是使用纤察继承。继承实际上破坏了类的封装性,超类的方法可能会被子类修改。
④ java里如何设计这个类
package com.;
import java.util.Date;
public class Computer {
public Key key;
public Screen screen;
public Mouse mouse;
public Date time;
public Computer(Key key, Screen screen, Mouse mouse, Date time) {
this.key = key;
this.screen = screen;
this.mouse = mouse;
this.time = time;
}
public Key getKey() {
return key;
}
public void setKey(Key key) {
this.key = key;
}
public Screen getScreen() {
return screen;
}
public void setScreen(Screen screen) {
this.screen = screen;
}
public Mouse getMouse() {
return mouse;
}
public void setMouse(Mouse mouse) {
this.mouse = mouse;
}
public Date getTime() {
return time;
}
public void setTime(Date time) {
this.time = time;
}
}
class Key {
}
class Screen {
}
class Mouse {
}