NotesWhat is notes.io?

Notes brand slogan

Notes - notes.io

Facade:
public class FacadePatternDemo {
public static void main(String[] args) {
ShapeMaker shapeMaker = new ShapeMaker();

shapeMaker.drawCircle();
shapeMaker.drawRectangle();
shapeMaker.drawSquare();
}
}

interface Shape {
void draw();
}

class Circle implements Shape {

@Override
public void draw() {
System.out.println("Circle::draw()");
}
}

class Square implements Shape {

@Override
public void draw() {
System.out.println("Square::draw()");
}
}

class Rectangle implements Shape {

@Override
public void draw() {
System.out.println("Rectangle::draw()");
}
}

class ShapeMaker {
private Shape circle;
private Shape rectangle;
private Shape square;

public ShapeMaker() {
circle = new Circle();
rectangle = new Rectangle();
square = new Square();
}

public void drawCircle(){
circle.draw();
}
public void drawRectangle(){
rectangle.draw();
}
public void drawSquare(){
square.draw();
}
}


Restaurant:
import java.util.ArrayList;
import java.util.List;


public class RestaurantOrderSystem {
public static void main(String[] args) {
Chef chef = new Chef();

Command burgerCommand = new BurgerCommand(chef);
Command pizzaCommand = new PizzaCommand(chef);

Waiter waiter = new Waiter();
waiter.takeOrder(burgerCommand);
waiter.takeOrder(pizzaCommand);
waiter.submitOrders();
}
}


class Chef {
public void makeBurger() {
System.out.println("Chef is making a burger.");
}
public void makePizza() {
System.out.println("Chef is making a pizza.");
}
}


interface Command {
void execute();
}


class BurgerCommand implements Command {
private Chef chef;
public BurgerCommand(Chef chef) {
this.chef = chef;
}

@Override
public void execute() {
chef.makeBurger();
}
}


class PizzaCommand implements Command {
private Chef chef;
public PizzaCommand(Chef chef) {
this.chef = chef;
}

@Override
public void execute() {
chef.makePizza();
}
}


class Waiter {
private List<Command> orders = new ArrayList<>();
public void takeOrder(Command command) {
orders.add(command);
}

public void submitOrders() {
for (Command command : orders) {
command.execute();
}
orders.clear();
}
}

Observer:
import java.util.ArrayList;
import java.util.List;


interface Subject {
void registerObserver(Observer observer);
void removeObserver(Observer observer);
void notifyObservers(String post);
}


class FacebookUser implements Subject {
private String username;
private List<Observer> followers;
private String latestPost;

public FacebookUser(String username) {
this.username = username;
this.followers = new ArrayList<>();
}

public void postUpdate(String post) {
latestPost = post;
notifyObservers(post);
}

@Override
public void registerObserver(Observer observer) {
followers.add(observer);
}

@Override
public void removeObserver(Observer observer) {
followers.remove(observer);
}

@Override
public void notifyObservers(String post) {
for (Observer follower : followers) {
follower.update(username, post);
}
}
}


interface Observer {
void update(String username, String post);
}


class FacebookFollower implements Observer {
private String followerName;

public FacebookFollower(String followerName) {
this.followerName = followerName;
}

@Override
public void update(String username, String post) {
System.out.println(followerName + " received an update from " + username + ":");
System.out.println(post);
System.out.println();
}
}

public class ObserverPatternDemo {
public static void main(String[] args) {

FacebookUser alice = new FacebookUser("Alice");
FacebookUser bob = new FacebookUser("Bob");


FacebookFollower follower1 = new FacebookFollower("Follower 1");
FacebookFollower follower2 = new FacebookFollower("Follower 2");


alice.registerObserver(follower1);
alice.registerObserver(follower2);
bob.registerObserver(follower2);


alice.postUpdate("Hello, everyone! This is my first post.");
bob.postUpdate("Feeling excited about the weekend!");


alice.removeObserver(follower1);


alice.postUpdate("A beautiful sunset today!");


}
}
     
 
what is notes.io
 

Notes is a web-based application for online taking notes. You can take your notes and share with others people. If you like taking long notes, notes.io is designed for you. To date, over 8,000,000,000+ notes created and continuing...

With notes.io;

  • * You can take a note from anywhere and any device with internet connection.
  • * You can share the notes in social platforms (YouTube, Facebook, Twitter, instagram etc.).
  • * You can quickly share your contents without website, blog and e-mail.
  • * You don't need to create any Account to share a note. As you wish you can use quick, easy and best shortened notes with sms, websites, e-mail, or messaging services (WhatsApp, iMessage, Telegram, Signal).
  • * Notes.io has fabulous infrastructure design for a short link and allows you to share the note as an easy and understandable link.

Fast: Notes.io is built for speed and performance. You can take a notes quickly and browse your archive.

Easy: Notes.io doesn’t require installation. Just write and share note!

Short: Notes.io’s url just 8 character. You’ll get shorten link of your note when you want to share. (Ex: notes.io/q )

Free: Notes.io works for 14 years and has been free since the day it was started.


You immediately create your first note and start sharing with the ones you wish. If you want to contact us, you can use the following communication channels;


Email: [email protected]

Twitter: http://twitter.com/notesio

Instagram: http://instagram.com/notes.io

Facebook: http://facebook.com/notesio



Regards;
Notes.io Team

     
 
Shortened Note Link
 
 
Looding Image
 
     
 
Long File
 
 

For written notes was greater than 18KB Unable to shorten.

To be smaller than 18KB, please organize your notes, or sign in.