固体-iOSразработке。 Принципединственнойответственности

Введение

ВэтомциклестателбырассказатьоSOLIDпринципах,и,чтосамоеглавное,дополнитихпра Понимаясмыслиспользованиякаждогопринципа,从

Немногоистории

Вначале2000-хРобертМартин,такжеизвестныйкакдядюшкаБоб,придумалсписокиз11принриоооое Первые5принциповописывали,каксделатьхорошийдизайнкласса。 使用SOLID ,则必须使用ПозжеонисталиизвестныподговорящейаббревиатуройМайкломФизерсом。 Этипринципыпомогаютписатьнадежный,гибкийкод。

Надежностьозначаетпростотуипонятностькода ,чтопозволяетлегковноситьвнегоизменения,упро

Гибкостьпозволяетсминимальнымиусилиямимасштабироватьпроект ,则需将кодовуюбазубезвредвредвред。

固体

Чтожеобозначаетаббревиатура?

  • S单一责任原则(SRP(SRP )或Принципединственнойответственности
  • OOCP开放式封闭原则
  • L —ПринципподстановкиБ。 Лисков(里斯科夫替代原理LSP
  • IISP接口隔离原则,Interface Separation Principle,ISP
  • D依赖倒置原理,DIP )( D) (Принципинверсиизависимостей)

Опытномуразработчикумогутбытьочевиднывсепринципыдажепослебыстроговзгляданаихрасшифров。 Нооченьчастомногиеначинающиеразработчикинедоконцапонимают,почемуэтипринципытакважны。 Дляустраненияэтогопробелавзнанияхдавайтепройдемсяпокаждомуизних。

Принципединственнойответственности

РобертМартинописывалеготак:

Каждыйклассдолжениметьтолькооднупричинудляизменения

Другимисловами,объектдолженнеститолькооднуответственность。 Егоинтерфейсиимплементациядолжныбытьнаправленытольконаэтуответственность。

Принципдолженсоблюдатьсявсигда:нетолькоприпроектированиикласса,ноиприегобагфиксе。 Оченьчастокласссоздается,следуяпринципу,нопотомвнегопопадаетвсё,чтотольковозможно。

Какпринципвыглядитнапрактике? Дляначалаяприведупростойпримердляобщегопонимания。 Послеэтогомырассмотримболееприближеннуюкреальностиситуацию,частовстречающуюсявiOSразраб。

Простойпример:Больница

Итак,давайтепредставим,чтоунасестьбольница,вкоторойработаютврачи,акнимходятпациен。

Врачможетзаписатьпациентаксебенаприем,以及一个:

Вывод

Вобоихпримерахнампришлосьрефакторитьклассы,изначальносодержащиенесколькоответственностей。 Принципединственнойответственностипомогаетнамвэтом,новпервуюочередьонпридумандляпред。 Его,какиостальныепринципы,можносравнитьсрекомендациямипотехническомуобслуживаниюавт。 Тольковместоавто—вашпроект。 Следуйтерекомендациям,регулярнозадумываясьобответственностяхклассов,небойтесьразделятьих,создаваяновыеклассы,икодпроектабудетслужитьвамдолгоиисправно。