Bakery is a C++ Framework for creating GNOME applications using gtkmm.
- Bakery provides a Document/View architecture,
but it doesn't force you to use the whole architecture. - Bakery can use XML as a Document storage format, if you like.
- Bakery provides default functionality,
which can be easily customized. - Bakery makes it easy to start developing GNOME applications.
- Bakery gives your application structure.
- Bakery contains a few utility classes
bakery是另一个轻量级的MVC框架,可拿它与VC的MFC进行对比。它把Controller 集成进了Viewer中,这是由于大部分组件都提供了对事件的响应代码的缘故。
它采用了多重继承,由于父类并没有共同的基类,这将减少用户对使用多层继承的恐惧感,例如,对于Viewer来说,一般有拥有View和一个GTK Widget类做为父类。View负责与Document的交互,而Gtk Widget类做为View里各种元件的容器。这是一种分隔复杂性的设计模式。使得不同的View可以与不同的GTk
Widget进行搭配,提高了复用性。
下面是一个示例的类交互图:
编译这个bakery是一个比较烦人的过程,与编译Gtk+/Gtkmm/libglade一起,下面给出了一个可能的依赖图: