200-05-25

2010年5月26日 05:27

【单词】

barranca: 峡谷。【死记,没有什么特点】


armada:fleet of warships。 来自西语armada,意为an armed force。


gravida: 孕妇。 【死记,没有什么特点】


agenda:things to be done。 agendum的缩写。


panacea:an all-healing herb。 来自希腊语:panakeia  pan(all)+ akos(cure)

herb:来自于法语中erbe, 意为grass。 后拉丁语更新h成为herb

 

【程序设计】

 

单一职责原则(SRP)

    主要目的就是降低模块的内聚性。即将一个类的功能单一化,简洁化。

    对于面向对象设计来说可以理解成为对模型的抽象:仅将对象的最紧密,最原子化的功能(方法)抽象出来。如果可以,可能再分离,则可以将非原子化的功能抽象成为一个单独的类。

    这样抽象显而易见的好处就是,足够原子化的类的改动对于其他类的影响可以做到最小。也就降低了模块之间的耦合性,内聚性。



开放-封闭原则(OCP)

    这个原则从字面上包含两个部分:

    开放:模块是可以扩展的;
    封闭:模块在扩展的时候不修改原来模块的代码或者二进制代码。

    这两点可以说深刻的体现了OOP的精髓。模块可扩展不言而喻,修改就可以满足;但要不修改源码,甚至不修改原来的二进制文件,这样就只能添加源文件和添加二进制文件了。 这简直就是给“抽象”量身定做的功能。

    对于OOP语言来说,对于已有类进行派生,在派生类中进行修改扩展就可以完全满足需求,并且仅重新构建新的类即可。不会修改原来的类源码及二进制文件。

    对于较弱的OO设计的C语言来说,其实也是可以满足这个功能的。特点也就是在指针这个特殊工具上。如果原来的设计考虑到扩展,对于不同的方法(功能),利用函数指针可以满足;对于数据类型,大体也可以通过union类型来满足。当然C语言没有那么强的多态性,自然有其缺陷。但只要设计的好,还是可以较好的满足需求的。