Skip to content

Instantly share code, notes, and snippets.

View hackjutsu's full-sized avatar

CosmoX hackjutsu

View GitHub Profile
@hackjutsu
hackjutsu / Command.java
Created May 20, 2019 05:07
[medium snippets] #medium #designPattern #CommandPattern
public interface Command {
void execute();
void undo();
}
@hackjutsu
hackjutsu / ReceiverB.java
Created May 20, 2019 05:06
[medium snippets] #medium #designPattern #CommandPattern
public class ReceiverB {
public void doAction() {
System.out.println("ReceiverB do action!!");
}
public void undoAction() {
System.out.println("ReceiverB undo action!!");
}
}
@hackjutsu
hackjutsu / ReceiverA.java
Created May 20, 2019 05:05
[medium snippets] #medium #designPattern #CommandPattern
public class ReceiverA {
public void doAction() {
System.out.println("ReceiverA do action!!");
}
public void undoAction() {
System.out.println("ReceiverA undo action!!");
}
}
@hackjutsu
hackjutsu / DemoMain.java
Created May 20, 2019 01:25
[medium snippets] #medium #designPattern #CompositePattern
public class DemoMain {
public static void main(String[] args) {
Employee emp1 = new Developer("John", 10000);
Employee emp2 = new Developer("David", 15000);
Employee manager1 = new Manager("Daniel", 25000);
manager1.add(emp1);
manager1.add(emp2);
Employee emp3 = new Developer("Michael", 20000);
@hackjutsu
hackjutsu / Developer.java
Created May 20, 2019 01:24
[medium snippets] #medium #designPattern #CompositePattern
public class Developer implements Employee {
private String name;
private double salary;
public Developer(String name, double salary) {
this.name = name;
this.salary = salary;
}
public void add(Employee employee) {
// Intentionally left blank
@hackjutsu
hackjutsu / Manager.java
Created May 20, 2019 01:22
[medium snippets] #medium #designPattern #CompositePattern
public class Manager implements Employee {
private String name;
private double salary;
private List<Employee> employees = new ArrayList<Employee>();
public Manager(String name, double salary) {
this.name = name;
this.salary = salary;
}
@hackjutsu
hackjutsu / Employee.java
Created May 20, 2019 01:18
[medium snippets] #medium #designPattern #CompositePattern
public interface Employee {
void add(Employee employee);
void remove(Employee employee);
Employee getChild(int i);
String getName();
double getSalary();
void print();
}
@hackjutsu
hackjutsu / ClientMain.java
Created May 20, 2019 01:07
[medium snippets] #medium #designPattern #IteratorPattern
public class ClientMain {
public static void main(String[] args) {
PetRepository pets = new PetRepository();
for (Iterator iter = pets.getIterator(); iter.hasNext(); ) {
String name = (String) iter.next();
System.out.println(name);
}
}
}
@hackjutsu
hackjutsu / PetRepository.java
Last active May 20, 2019 01:07
[medium snippets] #medium #designPattern #IteratorPattern
public class PetRepository implements Container {
private class NameIterator implements Iterator {
int index = 0;
@Override
public boolean hasNext() {
return index < pets.length;
}
@Override
@hackjutsu
hackjutsu / Iterator-pattern-interfaces.java
Last active May 20, 2019 01:08
[medium snippets] #medium #designPattern #IteratorPattern
public interface Iterator {
boolean hasNext();
Object next();
}
public interface Container {
Iterator getIterator();
}