Skip to content

Instantly share code, notes, and snippets.

View hackjutsu's full-sized avatar

CosmoX hackjutsu

View GitHub Profile
@hackjutsu
hackjutsu / ClientDemo.java
Created May 23, 2019 04:40
[medium snippets] #medium #designPattern #StatePattern
public class ClientDemo {
public static void main(String[] args) {
MP3PlayerContext mp3Player = new MP3PlayerContext();
mp3Player.press();
mp3Player.getState();
mp3Player.press();
mp3Player.getState();
}
}
@hackjutsu
hackjutsu / PlayingState.java
Created May 23, 2019 04:38
[medium snippets] #medium #designPattern #StatePattern
public class PlayingState implements State {
public void pressPlay(MP3PlayerContext context) {
context.setState(new StandbyState());
}
@Override
public String getState() {
return "Playing...";
}
}
@hackjutsu
hackjutsu / State.java
Created May 23, 2019 04:37
[medium snippets] #medium #designPattern #StatePattern
public interface State {
void pressPlay(MP3PlayerContext context);
String getState();
}
@hackjutsu
hackjutsu / MP3PlayerContext.java
Created May 23, 2019 04:35
[medium snippets] #medium #designPattern #StatePattern
public class MP3PlayerContext {
private State state;
public MP3PlayerContext() {
this.state = new StandbyState();
}
public void press() {
state.pressPlay(this);
}
@hackjutsu
hackjutsu / StreetMap.java
Created May 20, 2019 06:45
[medium snippets] #medium #designPattern #BuilderPattern
public class StreetMap {
private final Point origin;
private final Point destination;
private final Color waterColor;
private final Color landColor;
private final Color highTrafficColor;
private final Color mediumTrafficColor;
private final Color lowTrafficColor;
public static class Builder {
@hackjutsu
hackjutsu / ProxyPatternDemo.java
Created May 20, 2019 06:21
[medium snippets] #medium #designPattern #ProxyPattern
public class ProxyPatternDemo {
public static void main(String[] args) {
Image image = new ProxyImage("test_10mb.jpg");
image.display();
System.out.println("");
image.display();
}
}
@hackjutsu
hackjutsu / ProxyImage.java
Created May 20, 2019 06:19
[medium snippets] #medium #designPattern #ProxyPattern
public class ProxyImage implements Image{
private RealImage realImage;
private String fileName;
public ProxyImage(String fileName){
this.fileName = fileName;
}
@Override
public void display() {
@hackjutsu
hackjutsu / RealImage.java
Created May 20, 2019 06:18
[medium snippets] #medium #designPattern #ProxyPattern
public class RealImage implements Image {
private String fileName;
public RealImage(String fileName){
this.fileName = fileName;
loadFromDisk(fileName);
}
@Override
public void display() {
@hackjutsu
hackjutsu / Image.java
Created May 20, 2019 06:10
[medium snippets] #medium #designPattern #ProxyPattern
public interface Image {
void display();
}
@hackjutsu
hackjutsu / ClientMain.java
Created May 20, 2019 05:41
[medium snippets] #medium #designPattern #FacadePattern
public class ClientMain {
public static void main(String[] args) {
ComputerFacade computer = new ComputerFacade();
computer.start();
}
}