دیزاین پترن Facede

دیزاین پترن Facede

ظاهر طراحی این دیزاین پترن به اصطلاح نما یا facede بسیار شبیه به الگوی طراحی Factory است ، با این تفاوت که برخی از کلاسها با توابعی که نوشته میشوند صدا زده میشوند .

برای مثال ما میخواهیم یک ShapeMaker درست کنیم که اگر مثلا خواستیم دایره یا مربعی رسم کنیم از این کلاس استفاده کنیم .



  • برای شروع یک interface یا رابطی به نام Shape طراحی میکنیم



public interface Shape {
    void draw();
}



  • خب حالا میخواهیم کلاسی طراحی کنیم که از تابع draw ارث بری کنه و مثلا برای ما دایره یا مربعی رسم کنه که به صورت زیر کلاسمون رو طراحی میکنیم .

تکته : کلاس مربع رو به عنوان تمرین طراحی کنید




public class Circle implements Shape {

    @Override
    public void draw() {
        System.out.println("Rectangle::draw()");
    }
}



  • حالا میخواهیم بریم سراغ اصلیترین بخش طراحیمون یعنی کلاسی به نام ShapeMaker که داخل تابع سازنده ی این کلاس ما کلاسهایی که به نام های دایره یا مربع درست کردیم رو صدا میزنیم و با استفاده از توابعی که برای این کلاس مینویسیم دایره و مربع رو رسم میکنیم .


public class ShapeMaker {
    private Shape circle;
    private Shape rectangle;

    public ShapeMaker() {
        circle = new Circle();
        rectangle = new Rectangle();
    }

    public void drawCircle(){
        circle.draw();
    }
    public void drawRectangle(){
        rectangle.draw();
    }

}



  • حالا کافیه مثل کد زیر کلاسمون رو بسازیم و توابع رو برای رسم دایره و مربع صدا بزنیم .


        // TODO: Facade Design Pattern Sample
        ShapeMaker shapeMaker = new ShapeMaker();
        shapeMaker.drawCircle();
        shapeMaker.drawRectangle();





امیدوارم از آموزش فوق لذت برده باشید

برای دانلود سورس کد لطفا کلیک کنید





دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *