Кому должен принадлежать метод?

Вы можете установить GNU Accounting Utilities, чтобы иметь возможность видеть команды, выполняемые пользователями:

#centos
yum install psacct
# ubuntu: 
apt-get install acct

#Also make sure that the cooresponding service is enabled: 
/etc/init.d/psacct status

Затем, после того, как вы поймете, что контейнер остановлен, выполните:

lastcomm --command docker
# or
lastcomm --command kill

чтобы увидеть, кто выполнил вышеупомянутую команду (ы).

Вы можете использовать вышеупомянутое в комбинации с:

 docker container logs <name-of-the-container>

, чтобы увидеть точное время, когда контейнер был остановлен. (Например, вы можете увидеть сообщение в журналах: «Остановка службы ..») и сопоставить его с выводом lastcomm.

Другие полезные команды, которые поставляются с вышеуказанным пакетом: sa, ac

6
задан Tordek 13 March 2009 в 04:57
поделиться

5 ответов

эмпирическое правило:

  • если объект логически владеет всем включенным состоянием, то это владеет методами то использование то состояние
  • если метод требует состояния больше чем от одного объекта:
    • если контейнерный объект владеет всеми объектами, используемыми методом, то он владеет методом, также
    • иначе Вам нужен объект 'моста' владеть служебным методом
    • если нет веский довод в пользу одного объекта быть 'контроллером' для метода (не может думать о примере бесцеремонно хотя),

в Вашем случае 'gameboard' или 'игровая среда', вероятно, имели бы 'игровой класс' физики (или группа методов), который владел обнаружением коллизий (утилита/мост) методы

5
ответ дан 10 December 2019 в 00:45
поделиться

Хороший или плохой дизайн показывает себя тем, как хорошо он размещает неожиданные требования, таким образом, я предложил бы сохранить запас потенциальных "игровых функций" удобным для информирования отражений дизайна. Так как Вы делаете это как проект изучения, можно позволить себе сойти с ума.

Arkanoid является очень хорошим выбором для этого, он предлагает столько опций. Заставьте различные кирпичи выиграть различные суммы точек. Делайте некоторое изменение кирпичей счетом других кирпичей, когда поражено. Заставьте некоторые кирпичи потребовать нескольких хитов. Дайте супердержавы шару, веслу или кирпичам. Варьируйтесь эти полномочия: один из них делает шар управляемым клавиатурой, другой делает его прозрачным, другой реверсы "сила тяжести", и так далее. Сделайте объекты отбрасывания кирпичей.

Цель состоит в том, что при внесении такого изменения оно влияет на минимальное возможное количество классов и методов. Получите ощущение того, как Ваш дизайн должен измениться для установки этому критерию.

Используйте IDE, который имеет меню Refactoring, в особенности рефакторинг метода перемещения. (Если Вы не имеете, считайте книжный Рефакторинг.) Эксперимент с размещением Ваших различных методов тут и там. Заметьте то, что становится твердым измениться, когда метод помещается "неправильно", и что становится легче, когда Вы помещаете его в другое место. Методы помещаются право, когда объекты заботятся о своем собственном состоянии; можно "сказать" объекту сделать что-то, вместо того, чтобы "задать" ему вопросы о его состоянии и затем принять решения на основе его ответов.

Давайте предположим, что в Вашем дизайне каждый спрайт является экземпляром объекта. (Вы могли выбрать другие стратегии.) Обычно движение изменяет состояние спрайта, таким образом, метод, который описывает движение для конкретного вида спрайта, вероятно, принадлежит на классе того спрайта.

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

И так далее...

2
ответ дан 10 December 2019 в 00:45
поделиться

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

Таким образом для обнаружения коллизий, у Вас мог быть класс CollidingElement, который обрабатывает состояния формы и положение. Этот объект может затем быть встроен составом в любом объекте, который должен столкнуться в игре и делегировать любой необходимый вызов метода его.

2
ответ дан 10 December 2019 в 00:45
поделиться

Это действительно зависит от Вашей реализации, но я предполагаю, что у Вас был бы объект "gameboard" справиться с хранением счета или возможно объектом цели на каждой стороне. До коллизий я думаю, что Вы могли бы хотеть передать события между объектами. Я думаю, что любой объект должен знать свое местоположение все же.

1
ответ дан 10 December 2019 в 00:45
поделиться

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

0
ответ дан 10 December 2019 в 00:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: