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()
Düşünce Mezarlığı
Personel Message: π ,∞, %79, α