固体-iOSразработке。 Принципединственнойответственности
Введение
ВэтомциклестателбырассказатьоSOLIDпринципах,и,чтосамоеглавное,дополнитихпра Понимаясмыслиспользованиякаждогопринципа,从
Немногоистории
Вначале2000-хРобертМартин,такжеизвестныйкакдядюшкаБоб,придумалсписокиз11принриоооое Первые5принциповописывали,каксделатьхорошийдизайнкласса。 使用SOLID ,则必须使用ПозжеонисталиизвестныподговорящейаббревиатуройМайкломФизерсом。 Этипринципыпомогаютписатьнадежный,гибкийкод。
Надежностьозначаетпростотуипонятностькода ,чтопозволяетлегковноситьвнегоизменения,упро
Гибкостьпозволяетсминимальнымиусилиямимасштабироватьпроект ,则需将кодовуюбазубезвредвредвред。
固体
Чтожеобозначаетаббревиатура?
- S — 单一责任原则(SRP ) (SRP )或Принципединственнойответственности
- O — OCP ( 开放式封闭原则 )
- L —ПринципподстановкиБ。 Лисков(里斯科夫替代原理LSP )
- I — ISP ( 接口隔离原则,Interface Separation Principle,ISP )
- D — 依赖倒置原理,DIP )( D) (Принципинверсиизависимостей)
Опытномуразработчикумогутбытьочевиднывсепринципыдажепослебыстроговзгляданаихрасшифров。 Нооченьчастомногиеначинающиеразработчикинедоконцапонимают,почемуэтипринципытакважны。 Дляустраненияэтогопробелавзнанияхдавайтепройдемсяпокаждомуизних。
Принципединственнойответственности
РобертМартинописывалеготак:
Каждыйклассдолжениметьтолькооднупричинудляизменения
Другимисловами,объектдолженнеститолькооднуответственность。 Егоинтерфейсиимплементациядолжныбытьнаправленытольконаэтуответственность。
Принципдолженсоблюдатьсявсигда:нетолькоприпроектированиикласса,ноиприегобагфиксе。 Оченьчастокласссоздается,следуяпринципу,нопотомвнегопопадаетвсё,чтотольковозможно。
Какпринципвыглядитнапрактике? Дляначалаяприведупростойпримердляобщегопонимания。 Послеэтогомырассмотримболееприближеннуюкреальностиситуацию,частовстречающуюсявiOSразраб。
Простойпример:Больница
Итак,давайтепредставим,чтоунасестьбольница,вкоторойработаютврачи,акнимходятпациен。
Врачможетзаписатьпациентаксебенаприем,以及一个:
Вывод
Вобоихпримерахнампришлосьрефакторитьклассы,изначальносодержащиенесколькоответственностей。 Принципединственнойответственностипомогаетнамвэтом,новпервуюочередьонпридумандляпред。 Его,какиостальныепринципы,можносравнитьсрекомендациямипотехническомуобслуживаниюавт。 Тольковместоавто—вашпроект。 Следуйтерекомендациям,регулярнозадумываясьобответственностяхклассов,небойтесьразделятьих,создаваяновыеклассы,икодпроектабудетслужитьвамдолгоиисправно。