Показать сообщение отдельно
Старый 19.03.2008, 17:41
WindWalker вне форума Посмотреть профиль Отправить личное сообщение для WindWalker Найти все сообщения от WindWalker
  № 61  
Ответить с цитированием
WindWalker

Регистрация: Nov 2006
Сообщений: 223
Цитата:
Сообщение от BlooDHounD
по мне так проще вместо создания "непоймикакогосингтона" написать как-нить так:
Ну в некоторых случаях действительно можно и так.
Если точно уверены, что не будем наследовать, потому как со статическими методами не всё так просто.

Вот пример. Есть базовый класс.
Код:
package {
	public class MyClass1 {		
		private static function $hello():void {
			trace("Hello from class 1");
		}

		public function hello() {
			$hello();
		}
	}
}
Решили переопределить метод:
Код:
package {
	public class MyClass2 extends MyClass1 {		
		private static function $hello():void {
			trace("Hello from class 2");
		}
	}
}
Ну и проверям:
Код:
new MyClass2().hello();
Ай-яй-яй, бага.
В данном случае - легко заметная и быстро исправляемая.
А в реальном проекте можно очень долго её ловить.