Thomas Darimont
Erfahrenes Mitglied
Hallo,
dieser Beitrag erklärt das Strukturelle Muster (Structural Pattern): Façade
Eine Facade ist eine Komponente, welche die Komplexität von dahinterliegenden Subsystemen / Komponenten versteckt und die Funktionalität über eine einfach zu verwendende Schnittstelle verfügbar macht.
Ausgabe:
Gruß Tom
dieser Beitrag erklärt das Strukturelle Muster (Structural Pattern): Façade
Eine Facade ist eine Komponente, welche die Komplexität von dahinterliegenden Subsystemen / Komponenten versteckt und die Funktionalität über eine einfach zu verwendende Schnittstelle verfügbar macht.
Java:
package de.tutorials.design.patterns.structural;
import org.jpatterns.gof.FacadePattern;
public class FacadeExample {
public static void main(String[] args) {
Server server = new Server();
ServiceFacade facade = new ServiceFacadeImpl(server);
Client client = new Client(facade);
client.op();
}
static class Client{
ServiceFacade facade;
public Client(ServiceFacade facade) {
this.facade = facade;
}
public void op(){
facade.op();
}
}
@FacadePattern
static interface ServiceFacade{
void op();
}
static class ServiceFacadeImpl implements ServiceFacade{
Server server;
public ServiceFacadeImpl(Server server) {
this.server = server;
}
@Override
public void op() {
server.s1.op1();
server.s2.op2_A();
server.s2.op2_B();
server.s3.op3();
}
}
static class Server{
Service1 s1 = new Service1Impl();
Service2 s2= new Service2Impl();
Service3 s3= new Service3Impl();
}
static interface Service1{
void op1();
}
static interface Service2{
void op2_A();
void op2_B();
}
static interface Service3{
void op3();
}
static class Service1Impl implements Service1{
public void op1() {
System.out.println("op1");
}
}
static class Service2Impl implements Service2{
public void op2_A() {
System.out.println("op2_A");
}
public void op2_B() {
System.out.println("op2_B");
}
}
static class Service3Impl implements Service3{
public void op3() {
System.out.println("op3");
}
}
}
Ausgabe:
Code:
op1
op2_A
op2_B
op3
Gruß Tom