簡體   English   中英

模板方法模式 - 命名約定

[英]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()方法。

沒有關於它的約定。 但我更願意看到更有意義的名字。 例如forceRenderrenderNowrenderImmideately或類似的東西,它告訴它呈現的方式不同於render

模板方法模式在命名約定上沒有任何此類指南。 但是要給出適當的名稱,以便明確解釋方法的意圖 ,並且將來更容易維護

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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