Strategy Pattern

Strategy Pattern (Python):

Pattern Açıklaması:
- Python da OOP mimarisi tasarlarken, yeni bir nesne oluştururken her zaman aynı davranışı istemeyebiliriz, bu nedenle farklı yöntemler veya algoritmalar olabilir.
- Nesneler oluştururken belirli yöntemleri veya algoritmaları kullanmak isteyebiliriz, ancak her zaman aynısını istemeyebiliyor da olabiliriz.
- Yeni bir nesne oluşturduğumuzda hangi yöntemi veya algoritmayı kullanmak istediğimizi seçmek için bir strateji deseni kullanıyoruz.
- Strateji deseni, nesnelerin yaratılması sırasında hangi yöntemlerin veya algoritmaların kullanılacağını seçme esnekliği sunar.
- Parametreleri kullanarak stratejiyi belirleyebilir ve bu stratejiyi nesne oluşturulduktan sonra da uyguyalabiliriz.
- Strateji deseni, nesnelerin dinamik olarak davranmasına olanak tanır ve farklı parametrelerle aynı türdeki nesnelerin farklı yöntemleri çağırmasına izin verir.
- Strateji deseni, ayrıca nesnelerin oluşturulurken hangi yöntemleri veya algoritmaları kullanacaklarını da seçme özgürlüğü sunar.

Code:

import types

class StrategyExample:
  def __init__(self, func = None):
    if func is not None:
      self.execute = types.MethodType(func, self)

  def execute(self):
    print(self.name)   

def execute_1(self):
  print('execute 1')

def execute_2(self):
  print('execute 2')

obj = StrategyExample(execute_1)
obj.execute()

obj2 = StrategyExample(execute_2)
obj2.execute()

Bir yanıt yazın

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