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


         

Оно состоит из букв. Для


Оно состоит из букв. Для удобства источников знаний в класс слова введены указатели на все предложение, а также на предыдущее и следующее слова в предложении. Описание класса 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-ое высказывание (предположение или утверждение).

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

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