دیزاین پترن Factory

دیزاین پترن Factory

همانطور که از نام Factory یا کارخانه پیداست … میشه حدس زد که یک سری محصولاتی داریم که مشابه هم ساخته شده اند و ما میخوایم هر کدام رو برداشت کنیم و ازشون استفاده کنیم .

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

  • برای شروع ما یک کلاسی که شامل مقادیر برنامه نویس ها میشود رو به صورت abstract به نام Programmer میسازیم


public abstract class Programmer {
    public abstract String getname();
    public abstract String getfamily();
    public abstract String getResume();
}




  • حالا برای استفاده از مقادیر بالا ما میتونیم انواع برنامه نویسهایی که داریم رو بسازیم که از کلاس فوق ارث بری کنند ، بنابراین به یک نمونه از این کلاسها دقت کنید که برای برنامه نویس اندروید ساخته شده !

نکته : شما برای تمرین یک نمونه از برنامه نویس وب رو هم بسازید



public class AndroidProgrammer extends Programmer {
    private String name;
    private String family;
    private String resume;

    public AndroidProgrammer() {

    }

    public AndroidProgrammer(String name, String family, String resume) {
        this.name = name;
        this.family = family;
        this.resume = resume;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setFamily(String family) {
        this.family = family;
    }

    public void setResume(String resume) {
        this.resume = resume;
    }





    @Override
    public String getname() {
        return name;
    }

    @Override
    public String getfamily() {
        return family;
    }

    @Override
    public String getResume() {
        return resume;
    }


}



خب ، حالا زمان آن رسیده که کلاس Factory خودمون رو پیاده سازی کنیم که با استفاده از Type یا نوعی که انتخاب میکنیم برنامه نویس های مارو از آن کارخانه به صورت کلاسی که به صورت abstract به نام Programmer طراحی کردیم بیرون کشیده و اطلاعات آن را به ما میدهد .



public class ProgrammerFactory {


    public static int Android_PROGRAMMER_TYPE = 0;
    public static int WEB_PROGRAMMER_TYPE = 1;


    public static Programmer getProgrammer(int type) {
        switch (type) {
            case 0:
                return new AndroidProgrammer("hossein", "akbari", "5");
            case 1:
                return new WebProgrammer("hossein", "akbari", "0");
            default:
                return null;
        }
    }

}




  • خب حالا برای استفاده از کد زیر استفاده میکنیم …


// TODO: Factory Design Pattern Sample
        Programmer programmer = 
			ProgrammerFactory.getProgrammer(ProgrammerFactory.Android_PROGRAMMER_TYPE);






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

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









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

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