Bana template design pattern'i Java ile bir aptala anlatır gibi anlatır mısın?



Tabii ki, Template Design Pattern (Şablon Tasarım Deseni) basitçe anlatmak gerekirse bir algoritmanın yapısını bir üst sınıfta tanımlayıp, bazı adımlarını alt sınıflarda uygulamak veya değiştirmek için kullanılır. Java'da bu, genellikle soyut bir sınıf ve ondan türeyen bir veya daha fazla somut sınıf kullanarak gerçekleştirilir.


Şablon Tasarım Deseni Nasıl Çalışır?

Soyut Sınıf Oluşturulur: Bu sınıf, algoritmanın iskeletini temsil eden bir veya daha fazla soyut metot içerir. Bu metotlar, alt sınıflar tarafından uygulanacak olan adımlardır.


Somut Sınıflar Oluşturulur: Bu sınıflar, soyut sınıftan türetilir ve soyut metotları gerçekleştirir. Farklı somut sınıflar, algoritmanın adımlarını farklı şekillerde uygulayabilir.


Algoritmanın İskeleti Çalıştırılır: Soyut sınıftaki metotlar, algoritmanın genel yapısını oluşturur ve bu sınıftan türetilen sınıfların sağladığı özel adımları çağırır.


Örnek Java Kodu

java

Copy code

// Soyut Sınıf

abstract class Game {

    // Algoritmanın iskeleti

    final void playGame() {

        initialize();

        startPlay();

        endPlay();

    }


    // Soyut metotlar

    abstract void initialize();

    abstract void startPlay();

    abstract void endPlay();

}


// Somut Sınıf 1

class Cricket extends Game {

    void initialize() {

        System.out.println("Cricket Game Initialized!");

    }


    void startPlay() {

        System.out.println("Cricket Game Started. Enjoy the game!");

    }


    void endPlay() {

        System.out.println("Cricket Game Finished!");

    }

}


// Somut Sınıf 2

class Football extends Game {

    void initialize() {

        System.out.println("Football Game Initialized!");

    }


    void startPlay() {

        System.out.println("Football Game Started. Enjoy the game!");

    }


    void endPlay() {

        System.out.println("Football Game Finished!");

    }

}


// Main sınıf

public class Main {

    public static void main(String[] args) {

        Game game = new Cricket();

        game.playGame();


        game = new Football();

        game.playGame();

    }

}

Bu örnekte, Game soyut sınıfı, bir oyunun nasıl oynanacağını tanımlayan playGame() metodunu içerir. Bu metot, oyunun başlatılmasını (initialize()), oynanmasını (startPlay()) ve bitirilmesini (endPlay()) yönetir. Cricket ve Football sınıfları, bu adımları kendi içlerinde nasıl gerçekleştireceklerini tanımlar. Böylece, Game sınıfının iskeleti aynı kalırken, oyunun gerçekleştirilme şekli alt sınıflara göre değişir.

Hiç yorum yok

Rastgele İçerik

DonanımHaber

© tüm hakları saklıdır
made with by templateszoo