Android侦听器是某种设计模式吗?

mal*_*yeb 1 java android design-patterns

当我使用android时,我必须使用监听器进行点击...等等

如:

Button button = new Button(getActivity());

button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // do somthing
    }
});
Run Code Online (Sandbox Code Playgroud)

但是,今天我发现了一些新东西!我从Google的Dialogs中学习了如何创建需要侦听器的类。Android Developers API指南:

public static class DatePickerDialog extends DialogFragment {

    interface HijriDatePickerDialogListener {
        public void onDialogPositiveClick(DialogFragment dialog);

        public void onDialogNegativeClick(DialogFragment dialog);
    }

    HijriDatePickerDialogListener mListener;

    @Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);

        try {
            mListener = (HijriDatePickerDialogListener) activity;
        } catch (ClassCastException e) {
            throw new ClassCastException(activity.toString() + " must implement HijriDatePickerDialogListener");
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

我想了解更多有关这种模式的信息,我想知道它叫什么?

jwi*_*ir3 5

这是称为观察者模式的模式的一种形式。您可以在此处了解有关“观察者”模式的更多信息:http : //en.wikipedia.org/wiki/Observer_pattern

本书对设计模式作了很好的解释:http : //en.wikipedia.org/wiki/Design_Patterns(通常称为“四人制”关于设计模式的书)。

  • 抱歉,在发布答案之前,我没有看到您的评论。我不确定它是否不能作为该问题的有效答案,尽管事实上,这是对OP提出的问题的正确答案。 (2认同)