Как я могу ограничить своих клиентов выбранными методами из класса? - PullRequest
0 голосов
/ 27 сентября 2019

Допустим, у меня есть 1 полный класс с примерно 20 методами, которые предоставляют различные функции.

Теперь у нас есть несколько клиентов, использующих этот класс, но мы хотим, чтобы у них был ограниченный доступ.

Например -

Клиент 1 - получает доступ к методу 1 / м3 / м5 / м7 / м9 / м11

Клиент 2 - получаетдоступ к method2 / m4 / m6 / m8 / m10 / m12

Можно ли как-то ограничить этот доступ?

Одно решение, которое я подумал:

Создайте 2 новых класса, расширяющих родительский класс и методы переопределения, которые недоступны, и выведите из них исключение.Но тогда, если 3-й клиент с другим требованием, мы должны создать для него новый подкласс.

Есть ли другой способ сделать это?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 27 сентября 2019

Вы должны создать один суперкласс со всеми методами, а затем предоставить специфичные для клиента реализации в соответствующих им подклассах, выходящих за пределы суперкласса, определенного ранее.

Если существуют методы, которые являются общей реализацией для всех клиентов, оставьте их реализации суперклассу.

0 голосов
/ 27 сентября 2019

Вы можете создать Interface1, который определяет методы только для Client1, и Interface2, который определяет методы только для Client2.Затем ваш класс реализует Interface1 и Interface2.

Когда вы объявляете Client1, вы можете сделать что-то вроде: Interface1 client1.При таком подходе client1 может обращаться только к методам этого интерфейса.

Надеюсь, это поможет вам.

...