Объектно-ориентированное проектирование с примерами



Архитектура информационной доски - часть 6


Оно состоит из букв. Для удобства источников знаний в класс слова введены указатели на все предложение, а также на предыдущее и следующее слова в предложении. Описание класса Word выглядит так:

class Word : public BlackboardObject, virtual public Dependent {


public:


...

Sentence& sentence() const;


Word* previous() const;


Word* next() const;

protected:

List<CipherLetter*> letters;

};

Так же как для предложения, в класс слова введены две дополнительные операции:

    value - Текущее значение слова.

    isSolved - Истинно, если о всех буквах слова сделаны утверждения.

    Теперь можно определить класс cipherLetter (буква шифра). Буквы шифра являются объектами информационной доски и порождают зависимости. Кроме того, они имеют значение (буква, как она записывается в шифровке, например, н) и коллекцию возможных предположений и утверждений о соотнесении ее с буквами исходного текста. Для организации коллекции мы используем класс Affirmation. Опишем класс буквы следующим образом:

    class CipherLetter : public BlackboardObject, virtual public Dependent {


    public:


    ...

    char value() const;


    int isSolved() const;

    ...


    protected:

    char letter;


    Affirmation affirmations;

    };

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

    Объект affirmations, включенный в этот класс, содержит коллекцию предположений и утверждений в порядке их выдвижения. Последний элемент коллекции содержит текущее предположение или утверждение. Смысл хранения последовательности решения задачи состоит в возможности обучения источников знании на собственных ошибках. Поэтому в класс Affirmation введены два дополнительных селектора:

      mostRecent - возвращает последнее предположение или утверждение;

      statementAt - возвращает n-ое высказывание (предположение или утверждение).

      Уточнив поведение класса, мы можем принять правильные решения о его реализации.


      Содержание  Назад  Вперед