「Androidソース設計モード解析と実戦」コマンドモード
1421 ワード
コマンドモード:受信者(実行者)内で具体的なイベントを実現する.コマンドクラスは受信者の参照を持ち、受信者を呼び出す方法を提供する.リクエスト者は1つ以上のコマンドを持ち、コマンドを呼び出す方法を提供する.
受信者(実行者)
受信者(実行者)
public class Receiver {
private static final String TAG = "Receiver";
public void action() {
Log.i(TAG, "action: ");
}
}コマンドクラス
public interface Command {
void execute();
}
public class CommandImpl implements Command {
private Receiver receiver;
public CommandImpl(Receiver receiver) {
this.receiver = receiver;
}
@Override
public void execute() {
receiver.action();
}
}リクエスト
public class Invoker {
private Command command;
public Invoker(Command command) {
this.command = command;
}
public void action() {
command.execute();
}
}
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Receiver receiver = new Receiver();
Command command = new CommandImpl(receiver);
Invoker invoker = new Invoker(command);
invoker.action();
}
を
} log
03-10 19:14:48.843 15277-15277/com.lerz.commanddemo I/Receiver: action: