From af1b611136e417c0c04f491bd344c5b73207d779 Mon Sep 17 00:00:00 2001 From: Rakesh Venkatesh Date: Tue, 13 Oct 2020 17:36:59 +0200 Subject: [PATCH] code refactor --- .../src/main/java/com/iluwatar/command/App.java | 10 ++++------ .../main/java/com/iluwatar/command/Goblin.java | 17 ----------------- .../main/java/com/iluwatar/command/Target.java | 17 +++++++++++++++++ 3 files changed, 21 insertions(+), 23 deletions(-) diff --git a/command/src/main/java/com/iluwatar/command/App.java b/command/src/main/java/com/iluwatar/command/App.java index 1e4e78758..77396d37a 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 791bd94e3..a2311dfd3 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 f5ac4344c..419ad6f54 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); + } }