我有3個類:服務,客戶端和混亂(我應該以某種方式重構)。如何將變量關聯到對象並返回它們?
Class Service {
void servicemethod(int a, int b, int c)
{
//does something with params a, b and c
}
}
我這就要求從相同的混亂兩種方法的客戶端類
Class Client {
main()
{
Mess.setABC(x)
Mess.callintermediatemethod(int x)
}
}
殘局類什麼也不做,但讀PARAMS A,B和C,這與鍵「X」相關的值在一個文件中,並且調用Service.servicemethod(a, b, c)
:
Class Mess {
static void setABC(int x)
{
//sets static params a, b and c with values read from json file that has x as its key
}
void callIntermediatemethod(x)
{
Service.servicemethod(a, b, c);
//here x parameter is not even necessary since it already knows what A, B and C are.
}
}
很明顯,Mess類做了兩件事。在讀取x之後設置靜態變量,並使用存儲的值調用service方法,並使用僞參數。這顯然是糟糕的設計。但是,如果我決定消除混亂,如何設置參數a,b,c給定變量x?我應該將它們與對象關聯嗎?裝飾他們?使用構建器模式還是依賴注入?如何清理混亂並讓客戶端類直接調用服務方法而不必通過Mess?
除非您有一個令人信服的理由證明靜態需求,否則您應該更喜歡使用非靜態方法和類實例變量。一般來說,你對Mess課程有什麼不好的設計。花一些時間閱讀並利用面向對象的設計。 – pczeus