【问题标题】:What is the benefit of this design pattern?这种设计模式有什么好处?
【发布时间】:2014-04-23 21:24:17
【问题描述】:
interface Base<T extends Base> {

    T method();
}

反对这种模式设计

interface Base {

    Base method();
}

我猜,只有method() in Base 我可以得到特定的类型。 还有更多好处吗?

【问题讨论】:

标签: java oop design-patterns


【解决方案1】:

你只需保存一个演员表。这是一个例子:

class A implements Base<A> {
    ...
}


A a = ...;
A b = a.method();

class A implements Base {
    ...
}


A a = ...;
A b = (A)a.method();

您也可以在整个地方使用 T 参数来构建它。例如,考虑接受 T 作为参数或定义 T 类型的局部变量。

【讨论】:

    【解决方案2】:

    我能注意到的唯一区别是方法可以是 T 类或任何继承的类。

    【讨论】:

      【解决方案3】:

      其实很清楚。在第二种情况下,可以返回Base2 中的任何subclass。在第一种情况下,没有这种歧义。

      【讨论】:

        猜你喜欢
        • 2023-04-05
        • 1970-01-01
        • 2016-02-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-15
        • 1970-01-01
        • 2015-08-17
        相关资源
        最近更新 更多