Что означает «Клиент» при ссылке на принципы SOLID? - PullRequest
0 голосов
/ 07 декабря 2018

Я сейчас читаю Адаптивный код: Agile-кодирование с шаблонами проектирования и принципами SOLID , и в каждом принципе они ссылаются на "клиента".Кто такой «клиент»?

Даже в Википедии: https://en.wikipedia.org/wiki/Interface_segregation_principle

В области разработки программного обеспечения принцип сегрегации интерфейса (ISP) гласит, что ни одного клиента нельзя заставлять зависетьпо методам он не использует.

Спасибо!

1 Ответ

0 голосов
/ 07 декабря 2018

Клиент здесь просто ссылается на пользователя рассматриваемой конструкции кода.Допустим, вы пишете класс Queue, поддерживаемый массивом:

class Queue:
    void enqueue(item)
    item dequeue()
    void resize() // doubles the size of the array if it's full

Пользователь может быть самим собой, если вы импортируете свой собственный класс Queue в другое место, или это могут быть другие разработчики, еслиони используют ваш класс очереди.Тогда в этом случае ваши клиенты не зависят от изменения размера (класс очереди вызывает его внутренне, поэтому пользователи не могут его вызывать), интерфейс должен отображать только то, что необходимо для функциональности очереди

interface QueueI:
    void enqueue(item)
    item dequeue()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...