Gang of Four的设计模式使用文字处理器作为其中至少一些模式的示例,尤其是Composite和Flyweight.
除了使用C或C++之外,你真的可以使用这些模式和面向对象的开销来编写一个高性能的全功能文字处理器吗?
我知道Eclipse是用Java编写的,但是我还没有使用它,所以我不知道它是否像Visual Studio这样具有基于C++的文本编辑系统那样快速或完美.
我只使用C++和Java作为例子.这个问题更多地与拥有大量内存中对象的开销有关,就像在文字处理器甚至游戏等应用程序中那样.
设计模式以简约性为代价促进抽象,即使它们通常会指出何时可能会遇到某种性能损失.字处理器,尤其是游戏,尽可能接近金属,从中获益最多.
我只是想知道是否有人知道一个快速的面向对象的文字处理器或文本编辑器不是用C++编写的,他们是否使用模式构建一个或者他们会放弃大量的抽象事物?
Flyweight实际上只是在存在数千个具有内在共享状态的对象的情况下节省资源的一种方式,因此它在高级语言中可能比C/C++更有用.也许GoF在文档中使用字形的示例并不是说明这种模式的最佳选择.
我认为构建高性能文字处理器不仅仅是这些基本模式还有很多 - 不确定GoF中是否有任何东西可以排除能够成功实现这一目标.
通常,Visual Studio(VS)比Eclipse更高级,性能也更好 - 至少是我见过的VS版本.Eclipse是最令人印象深刻的Java应用程序之一,它在具有大量RAM的最新机器上运行良好.