209 - Design Patterns Em Java
209 - Design Patterns Em Java
1. Padrões Criacionais
1.1 Singleton
Descrição: O padrão Singleton assegura que uma classe tenha apenas uma
instância e fornece um ponto de acesso global a essa instância.
Exemplo:
private ModelSingleton() {
// Carregamento do modelo de Machine Learning
model = "Modelo de Machine Learning carregado!";
}
Comentários:
Versões LTS:
2. Padrões Estruturais
2.1 Adapter
Exemplo:
interface DataProcessor {
void process(String data);
}
// Adapter
class JsonAdapter implements DataProcessor {
private JsonData jsonData;
Comentários:
3. Padrões Comportamentais
3.1 Observer
Exemplo:
import java.util.ArrayList;
import java.util.List;
// Interface Observer
interface Observer {
void update(String data);
}
// Classe Subject
class DataSubject {
private List<Observer> observers = new ArrayList<>();
// Implementação do Observer
class DataLogger implements Observer {
public void update(String data) {
System.out.println("Dados recebidos: " + data);
}
}
Comentários:
Versões LTS:
Estrutura:
Exemplo Completo:
private ModelTraining() {
// Treinamento do modelo
}
public static ModelTraining getInstance() {
if (instance == null) {
instance = new ModelTraining();
}
return instance;
}
Comentários:
Versões LTS:
Exemplo:
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
@Path("/ml")
public class MLApi {
@GET
@Path("/predict")
@Produces(MediaType.APPLICATION_JSON)
public Response getPrediction(@QueryParam("data") String data) {
ModelTraining model = ModelTraining.getInstance();
String prediction = model.predict(data);
return Response.ok("{\"prediction\": \"" + prediction + "\"}").build();
}
}
Comentários:
Exemplo:
import javax.jws.WebMethod;
import javax.jws.WebService;
@WebService
public class MLService {
@WebMethod
public String predict(String jsonData) {
JsonAdapter adapter = new JsonAdapter(new JsonData());
adapter.process(jsonData);
Comentários:
Conclusão
A evolução das versões LTS do Java, com suas melhorias contínuas e novos
recursos, possibilita uma implementação ainda mais eficiente e robusta desses
padrões.