設計類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 {
}