Skip to content

Instantly share code, notes, and snippets.

View mtov's full-sized avatar

Marco Tulio Valente mtov

View GitHub Profile
@mtov
mtov / Main.java
Created September 16, 2019 13:54
Observer (Design Pattern)
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;
class Subject {
private List<Observer> observers = new ArrayList<Observer>();
public void addObserver(Observer observer) {
observers.add(observer);
}
@mtov
mtov / Main.java
Last active September 15, 2019 21:57
Singleton (Design Patterns)
class Logger {
private Logger() {} // proíbe clientes de chamar new Logger()‏
private static Logger instance; // instância única da classe
public static Logger getInstance() {
if(instance == null) // primeira vez que chama-se getInstance
instance = new Logger();
return instance;
}
@mtov
mtov / Main.java
Last active October 30, 2021 15:54
Channel Decorator (Design patterns)
interface Channel {
void send(String msg);
String receive();
}
class TCPChannel implements Channel {
public void send(String m) {
System.out.println("Enviando via TCP > " + m);
}
public String receive() {
@mtov
mtov / gist:18821432fa27a5813386c7d46f7d6882
Created April 24, 2019 16:21
Visitor Example - Eclipse JDT AST
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import org.eclipse.jdt.core.dom.AST;
import org.eclipse.jdt.core.dom.ASTParser;
import org.eclipse.jdt.core.dom.ASTVisitor;
import org.eclipse.jdt.core.dom.CompilationUnit;
import org.eclipse.jdt.core.dom.MethodDeclaration;