www.wikidata.uk-ua.nina.az
Skorochennya ISP takozh maye inshi znachennya Princip rozdilennya interfejsu angl Interface Segregation Principle ISP vazhlivij princip ob yektno oriyentovanogo programuvannya viznachenij Robertom Martinom u takomu viglyadi Kliyenti ne povinni zalezhati vid metodiv yaki voni ne vikoristovuyut 1 Originalnij tekst angl The interface segregation principle ISP states that no client should be forced to depend on methods it does not use Otzhe danij princip oznachaye sho zanadto tovsti interfejsi neobhidno rozdilyati na menshi ta specifichni shob yih kliyenti znali lishe pro ti metodi sho neobhidni dlya nih u roboti Yak rezultat pri zmini pevnogo funkcionalu nezminnimi mayut lishitisya ti klasi sho ne vikoristovuyut jogo Tobto vikonannya cogo principu dopomagaye sistemi zalishatisya gnuchkoyu pri vnesenni do neyi zmin ta lishatisya prostoyu dlya refaktoringu Zmist 1 Priklad 1 1 Priklad porushennya ISP 1 2 Zastosuvannya ISP 1 3 ISP ta shabloni proektuvannya 2 Perevagi ta nedoliki 3 Vikoristannya 4 Primitki 5 PosilannyaPriklad RedaguvatiPriklad porushennya ISP Redaguvati Dlya prikladu porushennya uyavimo sobi taku sistemu public interface Animal void eat void fly void bark public class Bird implements Animal Override public void eat deyaka realizaciya Override public void fly deyaka realizaciya Override public void bark throw new UnsupportedOperationException public class Dog implements Animal Override public void eat deyaka realizaciya Override public void fly throw new UnsupportedOperationException Override public void bark deyaka realizaciya Sho bude koli v sistemu dovedetsya dodavati novij klas napriklad Cat Legko zdogadatisya yakoyu bude jogo realizaciya Zastosuvannya ISP Redaguvati Vihodom z ciyeyi situaciyi ye vikoristannya rozdilennya interfejsu Tak zvanij tovstij Animal varto rozdiliti na nastupni dva interfejsi Flyable ta Barkable public interface Animal void eat public interface Flyable void fly public interface Barkable void bark public class Bird implements Animal Flyable Override public void eat deyaka realizaciya Override public void fly deyaka realizaciya public class Dog implements Animal Barkable Override public void eat deyaka realizaciya Override public void bark deyaka realizaciya Pislya zastosuvannya takogo pidhodu klasi stayut zdorovimi z nih znikayut zajvi metodi ISP ta shabloni proektuvannya Redaguvati Prote inkoli skladayetsya situaciya sho ne dozvolyaye zrobiti takij refaktoring Todi varto zastosovuvati arhitekturne rishennya sho nadaye pattern Adapter Sistema nabuvaye takogo viglyadu public interface Animal void eat void fly void bark public interface Eatable void eat public interface Flyable void fly public interface Barkable void bark public class FlyingAdapter implements Eatable Flyable private Animal animal public FlyingAdapter Animal animal this animal animal Override public void fly animal fly Override public void eat animal eat public class BarkingAdapter implements Eatable Barkable private Animal animal public BarkingAdapter Animal animal this animal animal Override public void bark animal bark Override public void eat animal eat Naslidki vikoristannya cogo pidhodu nastupni kliyentskij kod pracyuye lishe z tiyeyu funkcionalnistyu yaka jomu potribna v toj zhe chas robota vidbuvayetsya za dopomogoyu sutnostej staroyi sistemi sho ne vimagaye v nij bud yakih zmin podibnij pidhid znizhuye ochevidnist arhitekturnih rishen prochitnist kodu i maye vikoristovuvatis tilki yaksho zmina staroyi sistemi nemozhliva z pevnih prichin Perevagi ta nedoliki RedaguvatiSered plyusiv varto vidznachiti nastupni pri neobhidnosti stvorennya novoyi realizaciyi interfejsu nemaye potrebi realizovuvati nepotribni metodi kliyentskij kod otrimuye lishe te sho potribne dlya jogo roboti Minus vikoristannya polyagaye v zrostanni kilkosti interfejsiv sho privodit do zrostannya skladnosti sistemi Vikoristannya RedaguvatiSOLID bukva I oznachaye princip rozdilennya interfejsu angl Interface Segregation Principle Primitki Redaguvati Martin Robert The Interface Segregation Principle PS Arhiv originalu za 31 serpnya 2012 Procitovano 5 zhovtnya 2006 Posilannya RedaguvatiOOP SOLID Rules Interface Segregation Principle ISP Arhivovano 23 bereznya 2013 u Wayback Machine angl SOLID conclusions with ISP and DIP Arhivovano 14 sichnya 2014 u Wayback Machine angl Princip razdeleniya interfejsa Arhivovano 21 travnya 2013 u Wayback Machine ros OOD Principles ros Otrimano z https uk wikipedia org w index php title Princip rozdilennya interfejsu amp oldid 34963955