[英]template method pattern - naming conventions
我有一個名為RenderableEntity的抽象類。
我有一個公共方法render()
,它有一些圍繞抽象受保護的render()
方法的邏輯。 我應該如何命名這個抽象的render()
方法。 是否有某種慣例,例如。 doRender()
, makeRender()
用於受保護的方法render()
?
public abstract class RenderableEntity extends Entity {
private boolean visible;
public void render(){
if(visible){
render();
}
}
protected abstract void render();
}
編輯 :我知道這個片段無法編譯。 我只是想知道如何命名這個抽象方法,因為我不能有相同名稱和相同參數的方法。
第一:如果它們僅供模板方法獨占使用 ,則只考慮這些方法的特殊命名。 此外,您應該注釋這些方法,說明模板方法使用它們,並且應該考慮到這些用法進行任何修改。
在模板方法中構成可替換步驟的方法通常稱為“鈎子”方法。 你有時會看到它們最后以“Hook”命名。
在您的示例中,您可能希望將其稱為renderHook()
,但是如果您可以更具體地了解它在模板方法render()
中執行的任務更具描述性。
我見過使用doXXX()
,雖然它主要是在一對一的模板到鈎子關系時。
一個可能的建議。 對於模板方法stuff()
:
如果stuff()
主要是圍繞單個鈎子的簡單控制邏輯,則將鈎子命名為doStuff()
(在上面的例子中似乎就是這種情況)
如果stuff()
編排了幾個鈎子,用Hook
后綴單獨命名它們,並且不要將它們中的任何一個命名為與模板相同(在這種情況下,應該沒有stuffHook()
方法。
沒有關於它的約定。 但我更願意看到更有意義的名字。 例如forceRender
, renderNow
, renderImmideately
或類似的東西,它告訴它呈現的方式不同於render
。
模板方法模式在命名約定上沒有任何此類指南。 但是要給出適當的名稱,以便明確解釋方法的意圖 ,並且將來更容易維護 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.