[英]Java design pattern: same method on multiple classes
我正在創建一個Android應用程序。 我需要在許多UI類上覆蓋draw
方法以創建自定義外觀。 這些類都是View
子類。 我想知道最好的辦法是什么。 我希望能夠盡可能多地重用代碼,所以我正在尋找組織事情的幫助。 正如我現在看到的,我有兩個選擇:
選項1 - Subclass Everything
如果我想使用LinearLayout
,我創建CustomLinearLayout
。 如果我想使用ImageView
,我創建CustomImageView
。 在每個自定義類中,我draw
完全相同的方式覆蓋draw
。 這似乎並不高效,因為我正在重復代碼並擴展一些幾乎什么也沒做的類。
選項2 - 超類的子類
我最初的想法是擴展View
並創建CustomView
,因為它已經是我想要使用的所有類的超類。 但是,這不起作用,因為我想要使用的所有現有子類仍在擴展View
,而不是CustomView
。
有一個更好的方法嗎? 我錯過了什么嗎?
一種可能的解決方案是將繪制邏輯提取到單獨的類DrawingCode
。 這可能包含一個靜態方法,或者您甚至可以使用DrawingCode
實例來使用其他參數自定義繪圖代碼。 當然,您仍然需要覆蓋draw()
方法,但只需編寫一行代碼來調用DrawingCode.draw(param1, param2)
。 這樣您就可以將繪圖代碼存儲在一個中心位置,不要重復自己。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.