Дизайн текстового процессора

Я наткнулся на вопрос об интервью с просьбой разработать текстовый процессор.

После моего исследования я нашел шаблон проектирования Flyweight в качестве подхода. Я пришел с кодом ниже (игнорировать синтаксис). Но мне трудно думать о том, что будет моим ключом и какова будет моя ценность для текстового процессора. открытый класс Format { public readonly string _fontname; общедоступная строка только для чтения _weight; public readonly int _size;

    public Format(string fontname, string weight, string size)
    {
        _fontname = fontname;
        _weight = weight;
        _size = size;
    }
}

public class TextFromatInfo
{
    public _readonly Format _oFormat
    public TextFormatInfo ( Format oformat)
    {
        _oFormat = oFormat;
    }
    public Format GetFormat
    {
        get {return this._oFormat}
    }

    public void ApplyFormat(format Format)
    {
        console.writeline ("apply format fontname: " format.forntname +
           "size: " +  format.size + "weight : " format.weight
    }
}

public class TextFormatFactory
{
    public readonly IDictionary<Format, TextFormatInfo> _cache =
       new Dictionary <Format, TextFormatInfo>

    public TextFormatInfo GetTextFormatInfo(Format oFormat)
    {
        if (_cache.ContainsKey(oFormat)) return _cache[oFormat];
        var OTextFormatInfo= new TextFormatInfo(oFormat);
        _cache.add(OTextFormatInfo.GetFormat, OTextFormatInfo);
        return OTextFormatInfo ;
    }
}

public class TestFlyWeight
{
    private static TextFormatInfo[] formtInfo = new TextFormatInfo[100];
    private static TextFormatFactory ff;

    public void ProcessesWord(char c, string fontname, int size, string weight)
    {
    }
}

Как будет выглядеть вышеуказанный класс? Как я могу завершить программу, фактически обрабатывая текст?

1 ответ

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

Я бы сказал, что MDI является ключевой темой здесь: интерфейс нескольких документов. Несколько вкладок с несколькими документами. Наличие одного объекта Document на файл файловой системы (дважды открывающий один и тот же файл) и, возможно, наличие нескольких DocumentViews (swing: JTextPanes) на один документ, соединенных с помощью DocumentListener. На разных вкладках или в отдельной вкладке, разделенной по вертикали, так что вы можете перейти к другому месту и остаться на первом месте в разделенных панелях. Особо подчеркните, что это само по себе

Может быть, создание свинга EditorKit и StyledDocument.

Таким образом, чтобы сделать точки UI знают легкость, креативность, особенности, существующие классы.

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

Другие вопросы по тегам