یکی از راحتترین الگوها ، الگویِ Template (در لغت به معنی قالب هست) هست که در طبقهبندی Behavioral گنجونده میشه ، خیلی ساده و شیک تعریف این الگو این میشه : تعریف یک بدنه به حالتِ کلاس Abstract که در این بدنه یک سلسله مراتب از توابع (step) وجود دارند که ترتیب اونها مهمه ، کلاسهایی که از این کلاس ارث میبرند حق این رو دارند که stepها رو override کنند ولی نباید تابعی که این سلسله مراتب رو میچینه رو دستکاری کنند .
یک مثال : فرض کنید میخواید کلاسِ House رو ایجاد کنید ، برای ساخت خونه به ترتیب این step ها رو داریم : تیرآهن + دیوار + در و پنجره ، حالا شما میتونید در و پنجره رو قبل از تیرآهن بسازید ولی برای سر هم کردنشون حتما باید صبر کنید مرحله آخر وصلشون کنید ، تابعی که این step ها رو پشت هم صدا میزنه به اصلاح template method گفته میشه و باید نشه override کردش (در جاوا final باشه و در کاتلین open نباشه) ، این متد در خودِ کلاس House پیادهسازی میشه اما باقی متدها مثل متد دیوار (makeWalls) باید در کلاسهای فرزند پیادهسازی بشند ، در واقع ما یک Template (قالب) کلی برای خونهسازی ایجاد کردیم که انواع خونه از اون ارث میبرن .
کدِ مثال بالا به حالت زیر در میاد :
که به راحتی میشه ازش استفاده کرد :
باقی مقالات در مورد الگویهای طراحی رو در این مقاله بخونید .
من رو در لینکدین و اینستاگرام دنبال کنید ???
اگه دوست داشتید میتونید به صفحه Spotify بنده هم برید و موسیقی های منو گوش بدید ???