Каков наилучший способ распространения API для другого пользователя? - PullRequest
0 голосов
/ 17 сентября 2011

У меня есть типичный класс, подобный следующему:

public class A {
   void run();    //for all users
   void delete(); //for privileged users
}

Я хочу распространить эти классы в виде одной банки для разных пользователей, обычные пользователи могут видеть только методы, которые разрешены, и не могут видеть эти высокиепривилегированный (например, delete ()), как мне этого добиться?Кстати, я большой поклонник DDD, а это значит, что я не хочу, чтобы эти методы развалились.

Ответы [ 2 ]

2 голосов
/ 21 октября 2011

Я получаю следующее решение: ограничьте доступ к высокопривилегированному методу с помощью модификатора доступа private или package, чтобы обычный пользователь не мог их видеть, и привилегированный пользователь посетит этот метод через отражение.

public class A {
   public void run();    //for all users
   void delete(); //for privileged users
}

привилегированный пользователь:Reflections.invokeMethod (модули, "запустить");

0 голосов
/ 17 сентября 2011

Без модификатора доступа (публичный / защищенный / приватный ...) он не будет виден

...