Notes![what is notes.io? What is notes.io?](/theme/images/whatisnotesio.png)
![]() ![]() Notes - notes.io |
// interface Shape {
// void draw();
// }
// class Circle implements Shape{
// @Override
// public void draw(){
// System.out.println("Circle:: draw()");
// }
// }
// class ShapeMaker{
// private Shape circle;
// public ShapeMaker(){
// circle = new Circle();
// }
// public void drawCircle()
// {
// circle.draw();
// }
// }
// public class FacadeTest {
// public static void main(String[] args) {
// ShapeMaker shapeMaker = new ShapeMaker();
// shapeMaker.drawCircle();
// }
// }
//---------------RestaurantOrderSystem---------
// import java.util.ArrayList;
// import java.util.List;
// class Chef{
// public void makeBurger(){
// System.out.println("Chef is making Burger");
// }
// }
// interface Command{
// void execute();
// }
// // Concrete Command
// class BurgerCommand implements Command{
// private Chef chef;
// public BurgerCommand(Chef chef){
// this.chef = chef;
// }
// @Override
// public void execute(){
// chef.makeBurger();
// }
// }
// 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();
// }
// }
// public class RestaurantTest {
// public static void main(String[] args) {
// Chef chef = new Chef();
// Command burgerCommand = new BurgerCommand(chef);
// Waiter waiter = new Waiter();
// waiter.takeOrder(burgerCommand);
// waiter.submitOrders();
// }
// }
// -------------------------------------------------
import java.util.ArrayList;
import java.util.List;
// Subject interface
interface Subject {
void registerObserver(Observer observer);
void removeObserver(Observer observer);
void notifyObservers(String post);
}
// Concrete Subject
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);
}
}
}
// Observer interface
interface Observer {
void update(String username, String post);
}
// Concrete Observer
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) {
// Create Facebook users
FacebookUser alice = new FacebookUser("Alice");
FacebookUser bob = new FacebookUser("Bob");
// Create followers
FacebookFollower follower1 = new FacebookFollower("Follower 1");
FacebookFollower follower2 = new FacebookFollower("Follower 2");
// Register followers to users
alice.registerObserver(follower1);
alice.registerObserver(follower2);
bob.registerObserver(follower2);
// Users post updates
alice.postUpdate("Hello, everyone! This is my first post.");
bob.postUpdate("Feeling excited about the weekend!");
// Follower 1 decides to unfollow Alice
alice.removeObserver(follower1);
// Alice posts another update
alice.postUpdate("A beautiful sunset today!");
// Follower 1 doesn't receive the new update
}
}
![]() |
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