| SOLID |
|---|
Arayüz Ayrım Prensibi (İngilizce: Interface Segregation Principle, ISP), nesne yönelimli programlamada kullanılan SOLID tasarım prensiplerinden biridir. Bu prensip, istemcilerin kullanmadıkları arayüz metodlarına bağımlı olmaması gerektiğini savunur. Büyük ve monolitik arayüzlerin, küçük ve özelleştirilmiş arayüzlere bölünmesini önerir.
Tarihçe
| ]Arayüz Ayrım Prensibi, Robert C. Martin tarafından 2000'lerin başında SOLID prensipleri kapsamında tanımlanmıştır. Martin, 2002'de yayınlanan Agile Software Development, Principles, Patterns, and Practices kitabında bu prensibi, "istemcilerin kullanmadıkları arayüzlere bağımlı olmaması gerektiği" şeklinde formüle etmiştir. Prensip, özellikle büyük sistemlerde kodun esnekliğini ve bakımını iyileştirmeyi amaçlar.
Temel İlkeler
| ]- Arayüzler İstemci İhtiyaçlarına Göre Parçalanmalıdır: Bir arayüz, tüm istemcilerin ihtiyaç duyduğu metodları içermemeli; her istemci grubu için özelleştirilmiş arayüzler tasarlanmalıdır.
- Gereksiz Bağımlılıklar Önlenmelidir: İstemciler, kullanmadıkları metodları implemente etmeye zorlanmamalıdır. Bu, Liskov'un yerine geçme ilkesi ile de uyumludur.
- Karmaşıklık Azaltılmalıdır: Küçük arayüzler, kodun daha anlaşılır ve test edilebilir olmasını sağlar.
Uygulama Örneği
| ]- ISP Uyumsuz veya Hatalı Tasarım
// Tüm metodları içeren monolitik bir arayüz -java interface ÇokAmaçlıAlet { void yazdır(); void tarayıcıAç(); void faksGönder(); } // Sadece yazdırma özelliği gereken bir istemci class Yazıcı implements ÇokAmaçlıAlet { public void yazdır() { /* ... */ } public void tarayıcıAç() { throw new UnsupportedOperationException(); } // Gereksiz! public void faksGönder() { throw new UnsupportedOperationException(); } // Gereksiz! } - ISP Uyumlu Tasarım
interface Yazdırılabilir { void yazdır(); } interface Taranabilir { void tarayıcıAç(); } interface FaksGönderilebilir { void faksGönder(); } class Yazıcı implements Yazdırılabilir { public void yazdır() { /* ... */ } } Etkileri
| ]- Bakım Kolaylığı: Arayüzlerde yapılan değişiklikler sadece ilgili istemcileri etkiler.
- Esneklik: Yeni özellikler eklemek veya mevcutları değiştirmek daha az risklidir.
- Test Edilebilirlik: Küçük arayüzler, birim testlerini basitleştirir.
Ayrıca Bakınız
| ]Kaynakça
| ]wikipedia, wiki, viki, vikipedia, oku, kitap, kütüphane, kütübhane, ara, ara bul, bul, herşey, ne arasanız burada,hikayeler, makale, kitaplar, öğren, wiki, bilgi, tarih, yukle, izle, telefon için, turk, türk, türkçe, turkce, nasıl yapılır, ne demek, nasıl, yapmak, yapılır, indir, ücretsiz, ücretsiz indir, bedava, bedava indir, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, resim, müzik, şarkı, film, film, oyun, oyunlar, mobil, cep telefonu, telefon, android, ios, apple, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, pc, web, computer, bilgisayar
Vikipedi ozgur ansiklopedi sayfasindan yonlendirildi SOLIDTek sorumluluk ilkesi Aciklik kapalilik ilkesi Liskov un yerine gecme ilkesi Arayuz ayrimi ilkesi Bagimliligin tersine cevrilmesi ilkesigtd Arayuz Ayrim Prensibi Ingilizce Interface Segregation Principle ISP nesne yonelimli programlamada kullanilan SOLID tasarim prensiplerinden biridir Bu prensip istemcilerin kullanmadiklari arayuz metodlarina bagimli olmamasi gerektigini savunur Buyuk ve monolitik arayuzlerin kucuk ve ozellestirilmis arayuzlere bolunmesini onerir Tarihce span Arayuz Ayrim Prensibi Robert C Martin tarafindan 2000 lerin basinda SOLID prensipleri kapsaminda tanimlanmistir Martin 2002 de yayinlanan Agile Software Development Principles Patterns and Practices kitabinda bu prensibi istemcilerin kullanmadiklari arayuzlere bagimli olmamasi gerektigi seklinde formule etmistir Prensip ozellikle buyuk sistemlerde kodun esnekligini ve bakimini iyilestirmeyi amaclar Temel Ilkeler span Arayuzler Istemci Ihtiyaclarina Gore Parcalanmalidir Bir arayuz tum istemcilerin ihtiyac duydugu metodlari icermemeli her istemci grubu icin ozellestirilmis arayuzler tasarlanmalidir Gereksiz Bagimliliklar Onlenmelidir Istemciler kullanmadiklari metodlari implemente etmeye zorlanmamalidir Bu Liskov un yerine gecme ilkesi ile de uyumludur Karmasiklik Azaltilmalidir Kucuk arayuzler kodun daha anlasilir ve test edilebilir olmasini saglar Uygulama Ornegi span ISP Uyumsuz veya Hatali Tasarim Tum metodlari iceren monolitik bir arayuz java interface CokAmacliAlet void yazdir void tarayiciAc void faksGonder Sadece yazdirma ozelligi gereken bir istemci class Yazici implements CokAmacliAlet public void yazdir public void tarayiciAc throw new UnsupportedOperationException Gereksiz public void faksGonder throw new UnsupportedOperationException Gereksiz ISP Uyumlu Tasariminterface Yazdirilabilir void yazdir interface Taranabilir void tarayiciAc interface FaksGonderilebilir void faksGonder class Yazici implements Yazdirilabilir public void yazdir Etkileri span Bakim Kolayligi Arayuzlerde yapilan degisiklikler sadece ilgili istemcileri etkiler Esneklik Yeni ozellikler eklemek veya mevcutlari degistirmek daha az risklidir Test Edilebilirlik Kucuk arayuzler birim testlerini basitlestirir Ayrica Bakiniz span SOLID Tek sorumluluk ilkesi Bagimliligin tersine cevrilmesi ilkesiKaynakca span a b Martin Robert C 2002 Agile Software Development Principles Patterns and Practices Prentice Hall ss 121 126 ISBN 978 0135974445 SOLID Principles in Programming Understand With Real Life Examples GeeksforGeeks 13 Mayis 2025 tarihinde kaynagindan arsivlendi Erisim tarihi 13 Mayis 2025 gtdYazilim muhendisligiAlanlar Yazilim tasarimi Programlama Bicimsel yontemler Yazilim testi Yazilim sistemleri Yazilim dagitimi Yazilim bakimiKavramlarVeri modelleme Kurumsal mimari Programlama paradigmasi Yazilim Yazilim mimarisi Yazilim gelistirme yontembilimi Yazilim gelistirme sureci YonelimlerAtik Aspect oriented Nesne yonelimli Ontoloji Servis odakli ModellerGelistirme modelleri Atik Scrum Waterfall model XP V Model Diger modeller CMMI Islev modeli UMLYazilim muhendisleriVictor Basili Dennis Ritchie Peter Chen Grady Booch Fred Brooks Barry Boehm Bjarne Stroustrup Ward Cunningham Ole Johan Dahl Tom DeMarco Edsger Dijkstra Martin Fowler C A R Hoare Watts Humphrey Michael A Jackson Ivar Jacobson Craig Larman Winston W Royce James Rumbaugh Niklaus Wirth Ilgili alanlarBilgisayar bilimi Bilgisayar muhendisligi Isletme muhendisligi Gecmis Matematik Proje yonetimi Risk yonetimi Sistem muhendisligi Kategoriler Nesne yonelimli programlamaYazilim muhendisligiSOLID ilkeleri
