Interface Seggregation Principle
İstemciler kullanmadıkları arayüzlere bağımlı olmaya zorlanmamalıdır.
4. ISP - Interface Seggregation Principle
İstemciler kullanmadıkları arayüzlere bağımlı olmaya zorlanmamalıdır.
Arayüzün uygulayıcıları (istemcileri) ihtiyaç duymadıkları, ilgilenmedikleri bölümleri uygulamak zorunda olmamalı.
Arayüzleri anlamlı parçalara ayırarak sağlanabilir. (Role interfaces)
Amaç decoupled (eşleştirilmemiş), kolay refactor edilebilen ve kolay değişiklik yapılabilen bir sistem.
Arayüzler:
Yazılımın amacını daha iyi anlatmaya yarar. (Çalışan yazılım kadar önemli bir özellik.)
Alt düzeylere bağımlılığı engeller.
GRASP’teki “High Cohesion Principle” benzeri.
Şişman (fat) arayüzler uyumlu-tutarlı (cohesive) değildir.
Interface pollution → Kullanılmayan arayüze bağlanmak.
XEROX’ta Robert C. Martin tarafından önerildi. Yazıcının tüm işlerinde kullanılan, aşırı geniş “Job” sınıfı DI (Dependency Inversion) kullanılarak küçük arayüzlere parçalandı.
Dependency Inversion: Template Method (GoF)
Refactoring yöntemleri:
Extract Interface
Extract Adapter
Last updated
Was this helpful?