java - 抑制父类(super class)的功能,是不是好的设计?

标签 java gwt interface

我正在阅读《GWT in action 2》一书,作者提到(在开发人员可以通过扩展另一个小部件来创建自定义小部件的部分)关于如何停止/抑制父类(super class)的某些功能的提示,即由实现的接口(interface)给出的方法。

作者提供的方法是重写该方法,为开发者在GWT日志中添加异常。示例:

public HandlerRegistration addClickHandler(ClickHandler handler){ 
    GWT.log("", new Exception("Cannot add ClickHandler to ReportSizeLabel"));                      
    return null;                                                  
}

为什么我要这样做,这是一个好的设计吗?

如果你必须做这样的事情,为什么不直接返回 null 呢?

也许我想太多了,无论如何,谢谢。

最佳答案

我认为这基本上是不好的。返回 null 对程序员没有帮助(最好抛出异常),而且整个事情破坏了多态性的思想。

因此,正确的答案是创建一个替代的接口(interface)链,以获得您需要的所有功能,但不包括 HasClickHandlers。然而,实际上,这可能需要很多时间。如果这个函数抛出异常而不是返回 null,我愿意将其放入内部使用的代码中,但我不会发布此代码以供其他人使用。

PS:正确的答案可能是正确实现该方法 - 在这种情况下并不难。

关于java - 抑制父类(super class)的功能,是不是好的设计?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11419429/

相关文章:

java - DataLayer的业务逻辑、应用层放在哪里?

java - 使用日志分析

java - ReSTLet、GWT 和 session

javascript - 使用 GWT 通过 HTTP POST 下载文件

android - PreferenceActivity 的 UI 刷新

java - 连接两个响应

java - rxJava debounce() 运算符不适用于 Observable.range()

java - gwt 列表框执行我的处理程序

java - 有没有webhdfs的Java接口(interface)从hadoop集群获取数据

java - 将 CrudRepository 接口(interface)扩展为基础接口(interface)