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()