设计一个文字处理器

时间:2013-06-27 12:17:01

标签: java design-patterns flyweight-pattern

我遇到了一个面试问题,要求设计文字处理器。

在我的研究之后,我发现了Flyweight设计模式作为一种方法。我想出了下面的代码(忽略语法)。但我很难想到我的关键是什么,以及我对文字处理器的价值。 公共类格式     {         public readonly string _fontname;         public readonly string _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 个答案:

答案 0 :(得分:0)

老实说,我认为他们对模式的兴趣可能不如建筑。但是你可能已经给他们足够的材料来消化了。

我想说MDI是一个关键主题:多文档界面。多个标签包含多个文档。 每个文件系统文件有一个Document对象(两次打开同一个文件),并且每个Document可能有几个DocumentViews(swing:JTextPanes),由DocumentListener桥接。在不同的选项卡或垂直拆分的单个选项卡中,您可以滚动到另一个位置并仍然保留在拆分窗格中的第一个位置。 _特别强调,这是se

也许建立swing的EditorKit和StyledDocument。

因此,要了解UI知识点,创造力,功能,现有课程。

这一切都说,模式是采访中的重要资产,我也经历过。