2016-02-13 101 views
1

我從一個開發人員那裏繼承了一個項目代碼庫。 我必須對其進行一些更改。如何使數據與應用程序代碼鬆散耦合?

說我有一個表 「CARS」 2列

ID | CARNAME

1 | HYUNDAI
2 |福特
3 | BMW

綁定到Model類「汽車」:

public Class Car{ 

    @Id 
    @Column(name="ID") 
    private Long id; 

    @Column(name="FORD") 
    private String carName; 

    //getters and setters... 
} 

,並在我的代碼片段(比如說在某些控制器類),我還得看給定的車是否 是福特汽車,條件碼會像

if(thisCar.getCarName()=="FORD")

if(thisCar.getId()==2L)

但這會在數據庫和應用程序之間產生一些依賴性問題。 如果我沖洗汽車表或重新構造它,結果福特汽車 入口在主關鍵字3 同樣適用於字符串「福特」。如果明天它變成「FORDspeed」或什麼的話會怎樣。 我將不得不相應地更改我的代碼。

如何讓我的代碼在數據的意義上鬆散耦合。

回答

0

我認爲你不應該依賴字段ID,因爲這可能如你所說已經改變了。所以,短語if(thisCar.getId()==2L)可能在以後的時間有不同的結果,所以你應該避免它。但我認爲if(thisCar.getCarName()=="FORD")總是有一個靜態結果,我認爲基於面向對象的設計沒有任何問題。

+0

感覺還是不對勁。我們仍然硬編碼「福特」STRING – Sarabjeet

+0

是的,你是對的。但我認爲這是不可避免的。您需要使用硬編碼字符串檢查汽車名稱。 – hamed

+0

如何保持代碼和表之間的另一層? 一些屬性文件或東西? – Sarabjeet