Skip to content

Instantly share code, notes, and snippets.

View hackjutsu's full-sized avatar

CosmoX hackjutsu

View GitHub Profile
@hackjutsu
hackjutsu / ComputerFacade.java
Created May 20, 2019 05:39
[medium snippets] #medium #designPattern #FacadePattern
public class ComputerFacade {
static private final long BOOT_ADDRESS = 0;
static private final long BOOT_SECTOR = 0;
static private final int SECTOR_SIZE = 0;
private CPU processor;
private Memory ram;
private HardDrive hd;
public ComputerFacade() {
@hackjutsu
hackjutsu / Memory.java
Created May 20, 2019 05:37
[medium snippets] #medium #designPattern #FacadePattern
public class Memory {
public void load(long position, byte[] data) {
System.out.println("Memory: loading... " );
}
}
@hackjutsu
hackjutsu / HardDrive.java
Created May 20, 2019 05:36
[medium snippets] #medium #designPattern #FacadePattern
public class HardDrive {
public byte[] read(long lba, int size) {
System.out.println("HardDrive: reading...");
return null;
}
}
@hackjutsu
hackjutsu / CPU.java
Created May 20, 2019 05:35
[medium snippets] #medium #designPattern #FacadePattern
class CPU {
public void freeze() {
System.out.println("CPU: freezing...");
}
public void jump(long position) {
System.out.println("CPU: jumping...");
}
public void execute() {
System.out.println("CPU: executing...");
}
@hackjutsu
hackjutsu / command-patterns-java8.java
Last active May 20, 2019 05:23
[medium snippets] #medium #designPattern #CommandPattern
public interface Command {
void execute();
}
public class ClientMain {
static public void main(String[] args) {
ReceiverA receiverA = new ReceiverA();
ReceiverB receiverB = new ReceiverB();
Invoker invoker = new Invoker();
@hackjutsu
hackjutsu / Client.java
Created May 20, 2019 05:16
[medium snippets] #medium #designPattern #CommandPattern
public class Client {
static public void main(String[] args) {
CommandA commandA = new CommandA(new ReceiverA());
CommandB commandB = new CommandB(new ReceiverB());
Invoker invoker = new Invoker();
invoker.setCommand(0, commandA);
invoker.setCommand(1, commandB);
invoker.onButtonWasPushed(0);
@hackjutsu
hackjutsu / Invoker.java
Last active May 20, 2019 05:23
[medium snippets] #medium #designPattern #CommandPattern
public class Invoker {
private Command[] commands;
private Command undoCommand;
public Invoker() {
commands = new Command[2];
undoCommand = new NoCommand();
}
public void setCommand(int slot, Command command) {
@hackjutsu
hackjutsu / NoCommand.java
Last active May 20, 2019 05:24
[medium snippets] #medium #designPattern #CommandPattern
public class NoCommand implements Command {
@Override
public void execute() {
System.out.println("No Command!");
}
@Override
public void undo() {
System.out.println("No Command!");
}
@hackjutsu
hackjutsu / CommandB.java
Created May 20, 2019 05:10
[medium snippets] #medium #designPattern #CommandPattern
public class CommandB implements Command {
public CommandB(ReceiverB receiverB) {
this.receiverB = receiverB;
}
@Override
public void execute() {
receiverB.doAction();
}
@hackjutsu
hackjutsu / CommandA.java
Last active May 20, 2019 05:08
[medium snippets] #medium #designPattern #CommandPattern
public class CommandA implements Command {
public CommandA(ReceiverA receiverA) {
this.receiverA = receiverA;
}
@Override
public void execute() {
receiverA.doAction();
}