Вы можете использовать решение, упомянутое выше @Mikita Berazouski. Или вы можете использовать Статический метод . Таким образом, вам не нужно расширять сервер.
Статические методы - это методы в Java, которые можно вызывать без создания объекта класса. На них ссылается само имя класса или ссылка на объект этого класса.
Ваше решение будет таким:
public class Test {
public static void main(String... args) {
Client c = new Client();
c.run();
Business s = new Business();
s.run();
System.out.println(Server.number);
}
}
class Server {
public static int number = 0;
public static void run ()
{
number ++;
}
}
class Client {
public void run() {
Server.run();
}
}
class Business {
public void run() {
Server.run();
}
}
попробуйте код выше здесь , и вы проверите результат.
Другое возможное решение, так как вы объявляете число как статическое в классе Server, заключается в написании кода, подобного этому, это позволяет вам делать разные вещи в пустом прогоне каждого класса:
public class Test {
public static void main(String... args) {
Client c = new Client();
c.run();
Business s = new Business();
s.run();
System.out.println(Server.number);
}
}
class Server {
public static int number = 0;
}
class Client {
public void run() {
Server.number ++;
}
}
class Business {
public void run() {
Server.number ++;
}
}
Одна проблема для рассмотрения - то, что Silverlight является все еще очень новой технологией, с несколькими ошибками для сглаживания (ищите ТАК, чтобы тег Silverlight нашел пару - изменение размеров поля списка является одним из самых вопиющих).
Я еще не использовал Silverlight 3, таким образом, я не знаю, сколько было разрешено, но просто знать, что необходимо будет, вероятно, вставить много взломов/обходных решений в ближайшем будущем.
Также Silverlight находится на тяжелой стороне веб-платформ и если Ваши клиенты находятся на более строгом аппаратном и программном обеспечении и ASP.NET / решение для Ajax могло бы быть более соответствующим. Возможно, попытайтесь создать 'стресс-тест' приложение Silverlight (с большим количеством средств управления и частых прохождений сервера), чтобы видеть, является ли хит производительности слишком большим.
Как с флэш-памятью, все прекрасно, пока Ваше приложение используется через настольный браузер. Как только кто-то пытается получить доступ к чему-то по мобильному телефону или ноутбуку миниатюрного форм-фактора, можно столкнуться с трудностями. Особенно, если Ваш прямоугольник Silverlight является больше, чем размер экрана и не является корректируемым пользователем. Способ обойти это, как с Flash, состоит в том, чтобы сделать Ваше приложение 100% размера экрана. Однако на огромных экранах это также может сделать Ваше приложение неприменимым.
Другое соображение состоит в том, что пользователи не смогут связаться с определенными частями Вашего приложения. URL в строке поиска по умолчанию, остается таким же всюду по пользовательскому опыту приложения. Однако это может быть зафиксировано интенсивным использованием HTML #anchor точки, как сделан Gmail. Это приносит дополнительную пользу создания работы кнопки "Назад" браузеров также.
Множество компаний заперли себя в IE6 благодаря приложениям интрасети, которые от него зависят. Я бы побеспокоился, что Silverlight вызовет ту же проблему.
В будущем вы можете обнаружить, что было бы лучше (по какой-либо причине (стоимость, безопасность, доступность приложений и т. Д.) Перевести некоторых пользователей на платформу, которая не поддерживается от Silverlight - за исключением того, что вы не можете, потому что им нужен доступ к этому веб-приложению.
Удовольствие от хорошо написанного веб-приложения заключается в том, что все, что вам нужно для его использования, - это браузер. Небольшой сценарий может автоматизировать его. Вы можете получить доступ на настольном компьютере, телефоне, телевизоре или холодильнике и т. д.
Silverlight привязан к поставщику в то время, когда открытые веб-технологии быстро развиваются, и я бы не пошел по этому пути.