Tasarım Desenleri - Cephe Deseni
Cephe deseni, sistemin karmaşıklığını gizler ve müşteriye, müşterinin sisteme erişebileceği bir arayüz sağlar. Bu model, karmaşıklıklarını gizlemek için mevcut sisteme bir arayüz eklediğinden, bu tür bir tasarım deseni yapısal modelin kapsamına girer.
Bu model, istemci tarafından ihtiyaç duyulan basitleştirilmiş yöntemleri sağlayan ve mevcut sistem sınıflarının yöntemlerine çağrıları delege eden tek bir sınıfı içerir.
Uygulama
Biz oluşturmak için gidiyoruz Şekli arayüzü ve uygulama beton sınıfları Şekli arayüzü. Bir cephe sınıfı ShapeMaker , bir sonraki adım olarak tanımlanır.
ShapeMaker sınıfı, bu sınıflara yönelik kullanıcı çağrılarını delege etmek için somut sınıfları kullanır. FacadePatternDemo , bizim demo sınıf, kullanacağı ShapeMaker sonuçları göstermek için sınıf.
Aşama 1
Bir arayüz oluşturun.
Shape.java
public interface Shape {
void draw();
}
Adım 2
Aynı arayüzü uygulayan somut sınıflar oluşturun.
Rectangle.java
public class Rectangle implements Shape {
@Override
public void draw() {
System.out.println("Rectangle::draw()");
}
}
Square.java
public class Square implements Shape {
@Override
public void draw() {
System.out.println("Square::draw()");
}
}
Circle.java
public class Circle implements Shape {
@Override
public void draw() {
System.out.println("Circle::draw()");
}
}
Aşama 3
Bir cephe sınıfı oluşturun.
ShapeMaker.java
public class ShapeMaker {
private Shape circle;
private Shape rectangle;
private Shape square;
public ShapeMaker() {
circle = new Circle();
rectangle = new Rectangle();
square = new Square();
}
public void drawCircle(){
circle.draw();
}
public void drawRectangle(){
rectangle.draw();
}
public void drawSquare(){
square.draw();
}
}
4. adım
Cepheyi çeşitli şekiller çizmek için kullanın.
FacadePatternDemo.java
public class FacadePatternDemo {
public static void main(String[] args) {
ShapeMaker shapeMaker = new ShapeMaker();
shapeMaker.drawCircle();
shapeMaker.drawRectangle();
shapeMaker.drawSquare();
}
}
Adım 5
Çıkışı doğrulayın.
Circle::draw()
Rectangle::draw()
Square::draw()