Должен ли я использовать одноэлементный класс, который наследуется от инстанцируемого класса, или есть другой лучший образец? - PullRequest
0 голосов
/ 04 мая 2011

У меня есть класс с именем ArtificialIntelligenceBase, из которого вы можете создать свою собственную конфигурацию искусственного интеллекта, отправляющую некоторые переменные в конструктор, или вы можете создать класс, который наследуется от ArtificialIntelligenceBase, а в конструкторе этого нового класса просто вызовите функцию super () с параметрами конфигураций.

Я также создал несколько примеров искусственного интеллекта в классах, AIPassive, AIAgressive и AIDefensive. Очевидно, что все они наследуются от ArtificialIntelligenceBase.

Дело в том, что в базовом классе только несколько открытых функций. Переменные в базовом классе доступны только для чтения, а непубличные функции защищены, если вам необходимо применить некоторые изменения к ним при создании другого предварительно определенного AI.

Вы также можете создать другой ИИ, просто вызвав базовый класс, отправив некоторые параметры в конструктор, например: new ArtificialIntelligenceBase (param1, param2, param3, param4);

Я думал о том, чтобы сделать классы единичными, потому что классы никогда не меняются и после установки их переменные никогда не меняются.

Вопрос: является ли синглтон лучшим шаблоном для этого? Потому что я не уверен.

PD: Вам не нужно объяснять какую-либо скороговорку, просто назовите имя, и я поищу, как оно работает

PPD: я занимаюсь разработкой в ​​AS3. На всякий случай это поможет

Спасибо

1 Ответ

2 голосов
/ 04 мая 2011

В общем, синглтоны - это зло .Я не вижу никакой причины в вашем случае использовать синглтон, либо.Звучит так, будто вы используете свою собственную версию фабричного метода паттерна (как-нибудь с помощью конструктора?) Или, может быть, прототипа (я не знаю AS3 один бит), ноесли вы ищете другие паттерны, пара других - абстрактная фабрика и строитель .

Вам не нужно использовать шаблон синглтона, чтобы ограничить себяк использованию только одного экземпляра для каждого типа класса.Это не помогает избежать избыточности.

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