Factory Pattern

Factory Method (Python):

- Bu metod da bir sınıftan nesne oluşturma konusunu ele alıyoruz.
- Nesne oluşturmak için ;doğrudan bir sınıftan ve bir factory pattern yöntemi kullanarak iki yöntemden bahsediyoruz.
- Factory Pattern yöntemi, belirli bir türde yeni bir nesne döndüren statik bir yöntemdir.
- Bir Factory Pattern yöntemi uygulamak için adımlar şöyle:
1. Bir sınıf tanımlıyoruz (örneğin, "yarış arabası").
2. Tanımlanan sınıf türünde nesneler döndüren statik bir yönteme (örn. "make") sahip bir factory sınıfı oluşturuyoruz.
3. Nesneleri oluşturmak için factory pattern yöntemini çağırıyoruz.
- Factory Pattern yöntemleri, parametrelerle nesne oluşturulmasına izin vererek girdiye dayalı olarak farklı nesne türlerinin oluşturulmasını sağlar.
- Factory Pattern yöntemine birden fazla sınıf (örneğin, "otobüs" ve "yarış arabası") eklenebilir ve her biri parametrelere dayalı olarak farklı nesne türleri döndürebilir.
- Factory Pattern yöntemi kolayca ilave sınıfları içerecek şekilde genişletilebilir, bu da onu girdi parametrelerine dayalı nesneler oluşturmak için genişletilebilir bir yaklaşım haline getiriyor.

Code:
class CarFactory(object):
    def make(type):
        if type == "racecar":
            return RaceCar()
        elif type == "van":
            return Van()
        elif type == "bus":
            return Bus()

    make = staticmethod(make)
   

class Van:
    wheels = 4
    top_speed = 100

class Bus:
    wheels = 4
    top_speed = 80

class RaceCar:
    wheels = 4
    top_speed = 300

obj1 = CarFactory.make("bus")
obj2 = CarFactory.make("racecar")
obj3 = CarFactory.make("van")

print(obj1.top_speed)
print(obj2.top_speed)


def make_vehicle(vehicle_type):
    """
    Sağlanan vehicle_type'a dayalı olarak farklı araç türleri oluşturmak için Factory Design

    Args:
        vehicle_type (str): Oluşturulacak Araç Türü.

    Returns:
        Vehicle: İlgili araç türünün bir örneği.

    Raises:
        ValueError: Sağlanan vehicle_type desteklenmiyorsa.
    """
    if vehicle_type == "racecar":
        return RaceCar()
    elif vehicle_type == "van":
        return Van()
    elif vehicle_type == "bus":
        return Bus()
    else:
        raise ValueError("Geçersiz araç tipi sağlandı.")

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir