Как сказал Рохит, это так же просто, как понять основы ООП, в частности, инкапсуляцию.
Если вы хотите немного углубиться в шаблоны ООП, вы можете использовать шаблон Observer.Это позволяет вам изменять состояние любого экземпляра класса, даже если они не связаны наследованием, агрегацией и т. Д.
Вы можете масштабировать решение, сделав List of Observer
Вашим наблюдаемымinterface
public interface IObservable {
// Set the observer
public void setObserver(IObserver iObserver);
// Notify the observer the current status
public void notifyObserver();
}
Ваш интерфейс наблюдателя
public interface IObserver {
public void update(boolean status);
}
Ваша реализация наблюдателя
public class PlayHangman implements IObserver {
private boolean status = false;
public void printStatus() {
System.out.println("Status: " + (this.status ? "Win" : "Lose"));
}
@Override
public void update(boolean status) {
// The instance status is updated
this.status = status;
// Print the current status
this.printStatus();
}
}
Ваша наблюдаемая реализация
public class Hangman implements IObservable{
private String goalWord = "";
private String currentWord = "";
private int triesLimit = 0;
private int tries = 0;
private IObserver iObserver;
public Hangman(String goalWord, int triesLimit) {
this.goalWord = goalWord;
this.triesLimit = triesLimit;
}
public void setCurrentWord(String currentWord) {
this.currentWord = currentWord;
this.notifyObserver();
}
public void addTry() {
this.tries++;
this.notifyObserver();
}
@Override
public void setObserver(IObserver iObserver) {
this.iObserver = iObserver;
}
@Override
public void notifyObserver() {
// True = win
this.iObserver.update(this.tries < this.triesLimit &&
this.goalWord.equals(this.currentWord));
}
}
Ваш главный класс
public class Main{
public static void main(String[] args) {
// PlayHangman (game status)
PlayHangman playHangman = new PlayHangman();
// Hangman initializes with a goalWord and the triesLimit
Hangman hangman = new Hangman("HangmanJava", 5);
// Set the observer
hangman.setObserver(playHangman);
// During the game you just can set the current word and add a try
// You're not setting the status directly, that's the magic of the Observer pattern
hangman.setCurrentWord("Hang");
hangman.addTry();
hangman.setCurrentWord("HangmanJava");
}
}
Надеюсь, это поможет и наслаждайтесь Java