Совместное использование переменных среди расширений абстрактного класса - PullRequest
0 голосов
/ 19 февраля 2012

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

Сообщения, которые я обрабатываю, по сути являются строками с различными «сегментами».Я написал несколько классов для обработки сегментов (один тип сегмента на класс).Считыватели сегментов являются расширениями класса Abstract, который включает в себя общие методы.Наконец, у каждого читателя сегмента есть как публичные, так и приватные методы.Теперь первая версия кода передала сообщение конструктору каждого читателя сегмента, как это было необходимо:

SegmentReaderType1 r = new SegmentReader1(message)
String item = r.getSomethingInteresting()

Это кажется очень неуклюжим - поэтому я попытался (используя статические методы):

String item = SegmentReaderType1.getSomethingInteresting(message)

Это кажется чище, однако некоторые читатели внутренне сложны, поэтому много сообщений (внутренне) передается (я понятия не имею, хорошо это или плохо?).

КакВ качестве альтернативы мне было интересно, существует ли механизм, посредством которого я мог бы «поделиться» сообщением от абстрактного родителя с читателями?Может быть, лучшим вариантом будет одноэлементное MessageHolder?

Код работает, однако я действительно пытаюсь разработать лучшие методы кодирования.Любая помощь приветствуется

1 Ответ

1 голос
/ 19 февраля 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...