Skip to content

Instantly share code, notes, and snippets.

View mtov's full-sized avatar

Marco Tulio Valente mtov

View GitHub Profile
@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;
@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 / 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
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 November 14, 2019 17:38
Visitor (Design Patterns)
import java.util.ArrayList;
import java.util.List;
abstract class Veiculo {
private String placa;
public Veiculo(String placa) {
this.placa = placa;
}
public String getPlaca() {
return placa;
@mtov
mtov / Main.java
Created September 19, 2019 23:49
Builder (Design Pattern)
class Livro {
private String nome;
private String autores;
private String editora;
private String ano;
private Livro (String nome, String autores, String editora, String ano) {
this.nome = nome;
this.autores = autores;
this.editora = editora;
@mtov
mtov / vue.html
Last active January 17, 2024 10:34
Simple Single Page Application (SPA) using Vue.js
<html>
<script src="https://unpkg.com/vue@2"></script>
<body>
<h3>Uma Simples SPA</h3>
<div id="ui">
Temperatura: {{ temperatura }}
<p><button v-on:click="incTemperatura">Incrementa</button></p>
</div>
@mtov
mtov / Main.java
Last active June 24, 2021 23:08
Exercício para converter teste manual em teste de unidade (automatizado)
import java.util.List;
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
// teste 1
List<Integer> s = new ArrayList<Integer>();
System.out.println(s.isEmpty());
@mtov
mtov / Book.java
Last active April 14, 2020 09:59
Mock manual
public class Book {
private String titulo;
public Book(String titulo) {
this.titulo = titulo;
}
public String getTitulo() {
return titulo;
}
}
@mtov
mtov / IMCServlet.java
Created November 14, 2019 15:19
Exemplo de Testabilidade - Servlet
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
class IMCModel {
public double calculaIMC(String p1, String a1)
throws NumberFormatException {
double p = Double.parseDouble(p1);
double a = Double.parseDouble(a1);
double imc = p / (a * a);