我读了这篇文章和这篇文章,发现在B
类中,我需要保存对a
类的引用,当B
类中发生一些事情时,我们执行一个由a
类实现的接口定义的方法。不知何故我明白了。我以不同的方式使用接口来调用回调:
interface IHelper {
void onActionDone ();
void onActionFailed ();
}
public class Helper implements IHelper {
public Helper (Param param) {
// here we do what Helper class intended to do
// ...
// now call the any of callbacks
if(everything == OK) {
onActionDone();
} else {
onActionFailed();
}
}
@Override
public void onActionDone() {}
@Override
public void onActionFailed() {}
}
public class MainClass () {
new Helper(message) {
public void onActionDone () {
// here we can do anything we want after Helper will done its functions
}
public void onActionFailed () {
// or not done
}
}
}
我发现这种方式更易读,更容易理解,但不确定这是否是一个不好的做法。所以我可以自由地走得更远吗?
所以我可以自由地走得更远吗?
这种方式不太正确。
您所讨论的称为观察者
或订阅者
/发布者
模式。
public class Helper {
IHelper mSubscriber;
...
void setSubscriber(IHelper subscriber) {
this.mSubscriber = subscriber;
}
...
}
public class MainClass implements IHelper {
Helper mPublisher;
...
void someMethod() {
mPublisher.setSubscriber(this);
}
...
}
public class Helper {
...
void newMagazineIssued() {
mSubscriber.onActionDone();
}
void newMagazineFailed() {
mSubscriber.onActionFailed();
}
...
}
问题内容: 我读这个和这个,结果发现,在课堂上我需要保存到类的引用,当东西在发生类,我们执行由类的接口中定义的方法工具。好吧,我明白了。我以不同的方式使用接口来调用回调: 我发现这种方式更具可读性,更容易理解,但是不确定这是否是不好的做法。因此,我可以随意走这条路吗? 问题答案: 所以我可以随意走这条路吗? 这种方式不是很正确。 您在说的是称为Observer或/ 模式。 简而言之:订户想要从发布
问题内容: 我能够使用三个链接来组合一个简化的完整History.js示例,以从整个页面加载内容片段,而无需更新页面和更新浏览器历史记录。 这是相关的代码段- 完整的工作示例在此处http://jsfiddle.net/PT7qx/show 我想知道这是否正确。以前的版本可以使用#url绑定到事件。我没有看到使用此最新版本将事件绑定到url的任何示例,因此我使用了.on()click事件来调用Hi
关于SpringWebFlux的小问题,以及如何“链接”http调用。 通过一个具体的例子,这里是一个非常简单的SpringMVC示例,带有一个rest模板。 在这个片段中,我们看到了非常简单的内容。仅初始化一个rest模板。 超文本传输协议请求有效载荷对象的构造。 使用所构建的对象来查询第一外部web应用API以获得响应。 重要的是,需要第一个HTTP调用的响应来进行第二个HTTP调用。它们只能
问题内容: 我知道我不应该改变输入,而应该克隆对象来改变它。我遵循在redux入门项目上使用的约定,该约定使用: 用于添加项目-我使用了点差将项目追加到数组中。 用于删除我使用的: 但这改变了输入状态对象-即使我要返回一个新对象,也禁止这样做吗? 问题答案: 不,永远不要改变你的状态。 即使您要返回一个新对象,您仍然会污染旧对象,而您从来不希望这样做。这使得在旧状态与新状态之间进行比较时会出现问题
我创建了一个接口,以便可以在对话和片段之间进行通信。 目标:当用户从对话框中选择任何内容时,应将其显示在文本视图中。 在这个界面中,我创建了一个界面方法,在主活动中调用,并传递用户在对话框中选择的值。与用户选择的值一起,在我的片段中,我创建了一个方法,将文本视图设置为该值。然而,每当我调用该方法时,它总是返回null。 我对日志进行了大量测试,发现通过我的方法传递的值不是空的,一切似乎都按照我想要