"Dostlar Alışverişte Görsün" Design Pattern

Diyelim ki bir işi framework kullanıcılarına sunuyoruz. Bu iş de mesela, byte matrisini alıp belirli resim formatlarına çevirmek olsun (örneği sallıyorum tamamen). Bu DLL'i kullanacak insanları düşünerek, kodun da daha 2. kod geliştirmede çöpe dönmesini istemeyen insanlar olarak basitçe aşağıdaki gibi bir yapı veriyoruz;

Sonrasında da istediğimiz kadar formatı bu interface'ten türetebiliriz

Artık bunları da factory mi kullanırsın, ne yaparsın oradan türeterek insanlara dönersin, insanlar da interface üzerinden kullanır değil mi?

Ne güzel mis gibi oldu değil mi? Ha AbstractImageEncoder  falan da eklersin de genel yaklaşımın bu olması gerekiyor en azından.

Peki Türk yazılım standartlarına göre bu sorunu nasıl çözüyoruz? Diyelim ki sizden önceki yazılımcı (ben) bu interface'i yazmış ve örnek olacak şekilde bir alt sınıfını da yazmış. Siz buna uyuyor musunuz? Tabii ki hayır! Önce gidip, bu işi yapan eşşek kadar DLL olmasına rağmen yeni format için yeni bir DLL oluşturuyor, aşağıdaki gibi kendi kodunuzu yazıyorsunuz.

Sonra insan gibi sizi uyarıyoruz, diyoruz ki arkadaş zaten bununla ilgili bir yapı var, kodunu buna entegre et. Sen napıyorsun sonra güzel kardeşim;

...

Üniversitelerde API tasarımı diye bi ders olması lazım yahu.