[WPF Documents 之旅]System.Windows.Documents下的Class Diagram

                              [WPF Documents 之旅]System.Windows.Documents下的Class Diagram
                                                              周银辉

由于工作和个人兴趣需要,开始学习WPF中的“文档”(FlowDocument, XPS...)。


学习一种新的东西一般有两条路线:
     一种是先大概了解一下,然后“带着问题去学习”,比如需要遇到某个问题搞不定时就开始翻文档,翻Google,然后把问题解决并且学到了新东西。
     另外一种方式,在动手解决之前,把基础知识都搞扎实,然后胸有成竹地去面对问题。
这各有利弊,前者避免了“学习的东西太多”的问题,但解决问题时难免有些“头疼医头脚疼医脚”,并且在寻求答案时会变得比较盲目,或许类库中本来就有相应的方法或稍稍变通一下就可以搞定的,自己却始终想不到,其实,说白了,除了一些特殊行业外,灵感更容易来源于扎实的基础、丰富的经验而不是聪明的大脑。并且干一段时间以后自己终于明白:哦,没有系统学习。所以个人更偏向于后面的一种学习方式,这得益于学生时代的学习习惯:在完成家庭作业之前,先花一个小时将老师讲的内容认真复习一遍,以便更爽快地把作业搞定,而不是被作业搞定。别担心学习量太大,因为知识是分块的,比如WPF的东西很多,你不可能将WPF全部学习完成之后才去干活,但至少在搞定一个Button之前,你应该将Button的各个属性,方法,事件理解一遍,而不是当用到某个方法时才去查(并仅仅查)那个方法的用法,如果这样,你很难搞懂一个Button到底能干啥不能干啥。


我们平时常常说“开发带动(驱动)学习”。我们作为“被驱动者”有两种行动方式:
     一是消极方式(比较常见),学习并仅仅学习(查阅并仅仅查阅)开发中需要用到的东西,将问题搞定后便结束了。一个简单的例子:你要负责显示一个WPF窗口,所以你查阅资料,知道应该调用Show()方法,所以你学到了Show()方法。而ShowDialog()方法呢,也许下次遇到需要用ShowDialog()方法来解决开发问题时你会去查阅,而没有这样的开发问题的话,则永远不会知道,那么你能在你的简历中写上“熟悉WPF” 或“2年WPF开发经验”这样的字样吗?在面试一些朋友时常常遇到这样的尴尬局面:
我:  看你简历中提到了XXX技术,我们能简单聊聊吗?
朋友:以前公司有个项目用到了这个技术,然后有两年多的时间一直在用。
我:那么能谈谈其中的YYY吗?
朋友:哦,不好意思,好像听说过,但我们这个用得比较少...
     二则是主动地学习,项目用到这个东西,那么它在提醒你:这个世界上存在这样的东西(也许你以前从来没有听说过),并且这个东西能解决现实中的某一类问题,这是又一个将个人成长和团队产出结合起来的最佳机会,这是学以致用的最棒方式,或许你还会想到更多。当说到这里,不用我说太多,你已经能够想象主动学习应该是什么样子的了。

     废话了这么多,于是在学习WPF 中的Document之前,绘制一张类图也就不足为奇了(由于涉及的类比较多,类图比较大,整张图可以从文章附件中取得,大概样子如下:)

下载整张类图 : https://files.cnblogs.com/zhouyinhui/DocumentsNamespace.zip (该类图用Visual Paradigm for UML 6.4 Professional Edition编辑,你可以到这里下载试用版:http://www.visual-paradigm.com/product/vpuml/

另外,下面这张来自于MSDN文档的TextElement内容模型也很具有参考价值:




 

posted @ 2009-01-15 12:46  周银辉  阅读(3521)  评论(3编辑  收藏  举报