diff --git a/command/src/main/java/com/iluwatar/command/App.java b/command/src/main/java/com/iluwatar/command/App.java index 1e4e78758c61adab65613ef5e20d5143fce08a33..77396d37ab908e8efcd827d2e3ef1ba24f694ff4 100644 --- a/command/src/main/java/com/iluwatar/command/App.java +++ b/command/src/main/java/com/iluwatar/command/App.java @@ -30,12 +30,10 @@ package com.iluwatar.command; * *

Four terms always associated with the command pattern are command, receiver, invoker and * client. A command object (spell) knows about the receiver (target) and invokes a method of the - * receiver. Values for parameters of the receiver method are stored in the command. The receiver - * then does the work. An invoker object (wizard) knows how to execute a command, and optionally - * does bookkeeping about the command execution. The invoker does not know anything about a is - * executed. Both an invoker object and several command - * objects are held by a client object (app). The client decides which commands to execute at which - * points. To execute a command, it passes a reference of the command object to the invoker object. + * receiver. An invoker object (wizard) receives a reference to the command to be executed and + * optionally does bookkeeping about the command execution. The invoker does not know anything + * about how the command is executed. The client decides which commands to execute at which + * points. To execute a command, it passes a reference of the function to the invoker object. * *

In other words, in this example the wizard casts spells on the goblin. The wizard keeps track * of the previous spells cast, so it is easy to undo them. In addition, the wizard keeps track of diff --git a/command/src/main/java/com/iluwatar/command/Goblin.java b/command/src/main/java/com/iluwatar/command/Goblin.java index 791bd94e38c508237c2968fc44fb1a6a8e154ad0..a2311dfd39355575828877f36e67051ec6e35ae4 100644 --- a/command/src/main/java/com/iluwatar/command/Goblin.java +++ b/command/src/main/java/com/iluwatar/command/Goblin.java @@ -42,21 +42,4 @@ public class Goblin extends Target { public String toString() { return "Goblin"; } - - /** - * changeSize. - */ - public void changeSize() { - var oldSize = getSize() == Size.NORMAL ? Size.SMALL : Size.NORMAL; - setSize(oldSize); - } - - /** - * changeVisibility. - */ - public void changeVisibility() { - var visible = getVisibility() == Visibility.INVISIBLE - ? Visibility.VISIBLE : Visibility.INVISIBLE; - setVisibility(visible); - } } diff --git a/command/src/main/java/com/iluwatar/command/Target.java b/command/src/main/java/com/iluwatar/command/Target.java index f5ac4344c91860aa1c0a7505f0b51b6202a93004..419ad6f546b0a4ae27820179ce10e9afb6a8bb0a 100644 --- a/command/src/main/java/com/iluwatar/command/Target.java +++ b/command/src/main/java/com/iluwatar/command/Target.java @@ -62,4 +62,21 @@ public abstract class Target { public void printStatus() { LOGGER.info("{}, [size={}] [visibility={}]", this, getSize(), getVisibility()); } + + /** + * Changes the size of the target. + */ + public void changeSize() { + var oldSize = getSize() == Size.NORMAL ? Size.SMALL : Size.NORMAL; + setSize(oldSize); + } + + /** + * Changes the visibility of the target. + */ + public void changeVisibility() { + var visible = getVisibility() == Visibility.INVISIBLE + ? Visibility.VISIBLE : Visibility.INVISIBLE; + setVisibility(visible); + } }