Open Natgho opened 2 years ago
Hmm, okuduğum kitaba hızlıca baktım da şu şekilde göstermiş;
Bunu bizdeki örneğe göre ayarladığımızda aşağıdaki gibi mi olması gerekiyor diyorsun?
abstract class BaseHandler
{
protected BaseHandler _nextHandler;
public void SetNextHandler(BaseHandler nextHandler)
{
_nextHandler = nextHandler;
}
public void Handle(Image image)
{
HandleRequest(image);
if(_nextHandler != null)
{
_nextHandler.Handle(image);
}
}
public abstract void HandleRequest(Image image);
}
Selamlar, 2 yıl gecikmeyle cevap vereyim =) Burada Python uyarlamasını görebilirsiniz. Eğer "_nextHandler" null ise bu sefer de None / null dönmesi gerekiyor.
Anlatım kısmında kullanılan C# örneğinde abstract class içerisindeki boş bırakılan şu kısım:
public abstract void HandleRequest(Image image);
bir sonraki zincir var mı? varsa ilerle, yoksa None/boş dön şeklinde düzenlenmeli. Kod içeriğinde zincir kendi kendine tamamlanmalı ya da durmalıyken, if/else blokları ile döngü sağlanması bu tasarım deseninin yapısına aykırına. Yani 2 abstract class olarak ilerlenmesi daha sağlıklı olabilir.