![][1]
Сейчас об этом принципе слышал любой, кто занимается программированием. Чуть меньше тех, кто думает, что его знает. Гораздо меньше тех, кто действительно умеет его использовать. Я постараюсь объяснить суть, назначение и применение этого принципа как можно проще и короче.
Каждый программный объект имеет одно и только одно назначение.
Его можно исчерпывающе описать одним предложением, не используя союзы.
Lazy<T> — обертка для объекта, чье создание откладывается до первого обращения к нему.
Синглтон — класс, не допускающий создания более одного экземпляра. В этом описании нет союзов, но оно неполное — синглтон всегда имеет основную функциональность помимо контроля единственности собственного экземпляра. Синглтон — класс, реализующий полезную функциональность и контролирующий единственность собственного экземпляра. Теперь описание исчерпывающее, но имеет союз "и" — у синглтона два разных назначения. Он не соответствует принципу единственной ответственности.
Локатор сервисов — позволяет получить доступ к любому сервису приложения. Это описание без исчерпывающего списка сервисов заведомо неполное.
Упрощение создания, анализа и модификации программных систем.
[Читать дальше →][2]
[1]:
https://habrastorage.org/webt/59/da/c9/59dac97d7efff285825291.jpeg
[2]:
https://habrahabr.ru/post/338064/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut