因為涉及業務開發,經常遇到一些id需要翻譯成名稱,例如:「機構id」翻譯為「機構名稱」,「使用者id」翻譯為「使用者名稱」,以及一些業務id需要翻譯為業務名稱。經常遇到大量的重複**填寫。
list
list()
; paging
paging()
; list
list()
; paging
paging()
;
經常需要把單據的相關操作人、所述機構都需要轉換,但是這些內容都是通用的,但是不同的dto或者方法中,需要特殊處理翻譯,這樣影響了開發效率和增加了**的冗餘。
為了解決上述問題,提高團隊的開發效率,因此萌發了翻譯工具的開發。當時只是簡單的考慮通過公共介面,每個dto實現介面,提供id和設定name方法。
public
inte***ce
orgtransform
public
class
voucherwarehouse
implements
orgtransform
public
void
transorgname
(string name)
}
public
class
orgtranlator
list
idlist =
newarraylist()
;for
(orgtransform form : list)
} map
orgmap =
search
(idlist)
;for
(orgtransform form : list)}}
private map
orgsearch
(list
idlist)
}
@autwired
private orgtranlator orgtranlator ;
list
list()
不同的dto需要實現相同的orgtransform,**重複性也有點高。
如果voucherwarehouse如果再增加去向單位id,就需要重新定義乙個transform介面,專門處理同乙個dto存在多個相同業務的字段。
對已有**有一定的侵入性,使用起來不太簡單。
使用一段時間後,第一版的**重複率也比較高,同時使用比較繁瑣,經過參考其他的**,針對第一版的3個缺點,確定了aop+自定義註解+公共**的抽取(jdk反射),生成了第二版,見:自動翻譯工具-第二版
第一版Python程式
coding cp936 import os import cpickle as p class person def init self,name,age,self.name name self.age age self.def str self return name self.name age...
MVC面試第一版
mvc流程 1 使用者向伺服器傳送請求,請求被springmvc 前端控制器 dispatcherservlet 捕獲 2 dispatcherservlet對請求url進行解析,得到請求資源識別符號 uri 4 dispatcherservlet 根據獲得的handler,選擇乙個合適的handl...
HomePlay第一版demo發布
一直想做乙個能夠方便跨平台開發的應用框 基礎部分已經完成,於是將這個處於襁褓中的框架應用在win32基礎之上,花了些功夫研究了ffmpeg的使用,做了乙個demo,發布出來吸引批評與建議。框架基礎部分用c語言開發,以dll方式封裝了核心功能以及對ffmpeg的使用部分。出於簡單考慮,外部採用mfc包...