c# - 模板方法模式的这个示例是否有标准命名约定?

标签 c# design-patterns naming-conventions

我想创建一个具有常见异常处理模式的抽象类:

public abstract class Widget
{
    public IFoo CreateFoo()
    {
        try
        {
            CreateFooUnsafe();
        }
        catch(Exception ex)
        {
            throw new WidgetException(ex, moreData, evenMoar);
        }
    }

    protected abstract IFoo CreateFooUnsafe();
}

目的是为所有派生对象提供标准的异常处理模式。不应期望抽象 CreateFooUnsafe() 方法包含任何异常处理。实现可能会是一行 return new Foo(...)

我想知道是否有与此模式相关的标准命名约定,特别是在需要抛出异常的代码的情况下?

上面的名字看起来有些合适,但并非完全没有味道

最佳答案

这似乎是 template method pattern 的示例

模板方法是一种可以用许多面向对象语言表达的模式,通过使用公共(public)非虚函数来实现一些总体行为,并使用 protected 虚(或抽象)方法来补充子类中的具体行为.

在您的示例中,您使用模板方法来捕获从内部实现中冒出的所有异常,并将它们包装在自定义异常类型中。我对这一特定实践的一个评论是,只有当您可以添加允许调用代码更好地处理异常的上下文信息时,它才有意义。否则,最好只是允许源异常传播出去。

关于c# - 模板方法模式的这个示例是否有标准命名约定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4796865/

相关文章:

c# - Graphics.DrawImage缩放方法?

javascript - 引用错误 : json is not defined when AJAX call the server method

c# - 如何找出计划属于哪个选项卡/位置?

java - 我什么时候应该使用新类而不是添加新字段(作为状态)?

sql - 保存分层元素的最佳数据结构/数据库/二进制格式

c++ - c++中的代码是什么意思?

c# - 转到被认为有害的声明?

android - Android SDK 中的命名约定

java - 定义一个类抽象并在不同的项目中使用它的实现,应该使用什么java包名称?

java - 向类添加方法而不破坏实现