Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

The following code implements the Subject class and Observer class from the UML.

ID: 3727176 • Letter: T

Question

The following code implements the Subject class and Observer class from the UML., along with a Main that uses the Observer pattern. Subject Class Code import java.util. ArrayList: import java.util.List; public class Subject t private List« Observer» observers = new ArrayList(); private String message; public String getMessage) ( return message; public void setMessage(String message) ( this.message message; notifyAlIObservers); public void updateMessage(String message) ( this.message += message; notify AllObservers): public void attach(Observer observer) f observers.add(observer); ) public void notifyAllObservers0)f for (Observer observer : observers) observer.messageChanged(message);

Explanation / Answer

NOTE:- Check does not allowed to submit zip file. So i am giving java classes code directeely.

a) Observer.java

public abstract class Observer {

protected Subject subject;

public abstract void messageChanged(String message);

}

---------------------------------------------------------------------------------------------------------------------

b) LowerCaseObserver.java

public class LowerCaseObserver extends Observer {

public LowerCaseObserver(Subject subject) {

this.subject = subject;

this.subject.attach(this);

}

@Override

public void messageChanged(String message) {

if (message != null) {

if (message.toLowerCase() == message) {

System.out.print("LowerCase Message : " + message);

}

}

}

}

------------------------------------------------------------------------------------------------------------------------------------------------

3) UpperCaseObserver.java

public class UpperCaseObserver extends Observer{

public UpperCaseObserver(Subject subject) {

this.subject = subject;

this.subject.attach(this);

}

@Override

public void messageChanged(String message) {

if (message != null) {

if (message.toUpperCase() == message) {

System.out.print("UpperCase Message : " + message);

}

}

}

}

----------------------------------------------------------------------------------------------------------------------------------

d) ConcreteObserver.java

public class ConcreteObservcer extends Observer{

public ConcreteObservcer(Subject subject) {

this.subject = subject;

this.subject.attach(this);

}

@Override

public void messageChanged(String message) {

boolean isConcrete = true;

if (message != null) {

if (message.toLowerCase() == message) {

isConcrete = false;

} else if (message.toUpperCase() == message){

isConcrete = false;

}

}

if(isConcrete) {

System.out.print("Concrent Message (not in lowercase/ not in uppercase) : " + message);

}

}

}

-------------------------------------------------------------------------

e) Subject.java

import java.util.ArrayList;

import java.util.List;

public class Subject {

private List<Observer> observers = new ArrayList<Observer>();

private String message;

public String getMessage() {

return message;

}

public void setMessage(String message) {

this.message = message;

notifyAllObservers();

}

public void updateMessage(String message) {

this.message += message;

notifyAllObservers();

}

public void attach(Observer observer) {

observers.add(observer);

}

public void notifyAllObservers() {

for(Observer observer : observers) {

observer.messageChanged(message);

}

}

}

-------------------------------------------------------------------------------------------------------------

f) Main.java

public class Main {

public static void main(String str[]) {

Subject subject = new Subject();

Observer lowerCaseObserver = new LowerCaseObserver(subject);

Observer upperCaseObserver = new UpperCaseObserver(subject);

Observer concreteObserver = new ConcreteObservcer(subject);

subject.setMessage("Hello hello");

}

}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote