1 回答

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超6個(gè)贊
正如評(píng)論中所指出的,這顯然是一個(gè)糟糕的設(shè)計(jì)(這是一個(gè)我正在重構(gòu)的舊項(xiàng)目)。所以我決定擺脫反思,花一些時(shí)間重新設(shè)計(jì)代碼本身。
我創(chuàng)建了一個(gè)基超類來處理所有類似的方法,并讓實(shí)體/模型僅實(shí)現(xiàn)所需的單獨(dú)規(guī)則,因此數(shù)據(jù)庫訪問僅作為單例存儲(chǔ)在一個(gè)類中。使用接口多態(tài)性要好得多。
通過這種方式,db 類處理動(dòng)態(tài) SQL 生成以避免在各處重復(fù)相同的代碼并重新使用/回收實(shí)例列表以提高性能。
觀察。1:反射會(huì)降低性能,通常會(huì)讓調(diào)試變得更加困難。當(dāng)然它可以節(jié)省一些時(shí)間,因?yàn)樗鼘?shí)現(xiàn)起來很快,但是會(huì)禁用大部分 IDE 功能,這使得它在大多數(shù)情況下毫無價(jià)值。
觀察。2:也不應(yīng)該保持?jǐn)?shù)據(jù)庫實(shí)例列表處于活動(dòng)狀態(tài)。讓許多實(shí)例同時(shí)訪問數(shù)據(jù)庫絕不是一個(gè)好主意,它會(huì)導(dǎo)致數(shù)據(jù)庫鎖定并重現(xiàn)意外問題。
觀察。3:那個(gè) JSON 的東西……算了吧。我很抱歉提出如此丑陋的建議。
添加回答
舉報(bào)