簡體   English   中英

Java設計模式:多個類上的相同方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM