Digamos que tengo 1 clase completa con alrededor de 20 métodos diferentes que proporcionan funcionalidades.
Ahora tenemos varios clientes que utilizan esta clase, pero nosotros queremos que tengan acceso restringido.
Para, por ejemplo -
Cliente 1 - Obtiene acceso a metodo1 / m3 / M5 / M7 / M9 / M11
El cliente 2 - Obtiene acceso a metodo2 / M4 / M6 / M8 / M10 / M12
¿Hay alguna manera de que pueda limitar este acceso?
Una solución que pensé:
Crear 2 nuevas clases que se extienden métodos de la clase dominante y de anulación que no son accesibles y lanzar excepciones de ellos. Pero entonces, si tercio cliente con diferentes requerimientos, tenemos que crear una nueva subclase para ellos.
Hay alguna otra manera de hacer esto?
Se puede crear una Interface1
que define los métodos sólo para Client1
, y una Interface2
que define los métodos sólo para Client2
. Luego, su clase implementa Interface1
y Interface2
.
Cuando se declara Client1
que puede hacer algo como: Interface1 client1
. Con este enfoque, client1
se accede sólo los métodos de esta interfaz.
Espero que esto ayude.