TDD & Patterns Notes

类别:Java 点击:0 评论:0 推荐:
        看书看不下去,索性就把这段时间以来的学习笔记放一点上来。这里的全部都是理论上的东西,具体的实践近期是不大可能会有的,诶,理论是有点乏味,可还是要学。就像数学一样的。

        TDD和模式的笔记,TDD的那本书看完了,不过没有深刻地看,等到暑假再说咯。模式现在还在看,这书太厚啦,一章章地看下来累得死一头牛。没办法,坚持,就是胜利。

        数值对象的一个要求就是一旦它的实例变量值在构造方法中被指定,那么以后就再也不允许改变,所以数值对象的所有操作都必须返回一个新的对象,而且必须实现 equals() 和 hashCode() 方法。

        当需要显式地判定是哪一种类型才能下一步工作时,都要使用多态来代替条件判断语句。这也是一条重构原则。

        开闭原则  Open-Closed Principle  OCP
                Software entities should be open for extension, but closed for modification.
                软件实体应当对扩展开放,对修改关闭。
                这里应该是这样的,如果扩展一个软件的功能,那么不应该改变既有代码,而是通过增加一些新的内容来达到目的。

    里氏代换原则
        任何基类可以出现的地方,子类一定可以出现。
        子类源于基类,“青出于蓝而胜于蓝”。这个,我能这样解释吗???自己都感觉好像有问题似的。

    依赖倒转原则 (一开始我还以为是翻转控制呢)
        要依赖于抽象,不要依赖于实现。
        Abstractions should not depend upon details. Details should depend upon abstractions. Program to an interface, not an implemention.
        这个就是那个“针对接口编程”咯。

    合成/聚合 复用原则
        尽量使用合成/聚合,而不是继承关系来达到复用的目换。
        继承是一种绑定,在 JAVA 里,只允许单继承,能够不继承的就一定不用继承来达到其它目的。

    迪米特法则
        一个软件实体应当与尽可能少的其它实体发生相互作用。

    接口隔离原则
        为客户端提供尽可能小的单独的接口,而不要提供大的总接口
    迪米特法则与接口隔离原则是一个意思吧??



    接口
        JAVA 接口:一种 JAVA 语言中存在的结构,有特定的语法和结构。
        普通 接口:一个类所具有的方法的特征集合,一种逻辑上的抽象。

    一个方法的特征仅包括方法的名字,参数的数目和类型,而不包括方法的返回类型,参数的名字以及所抛出的异常。
    ?今天写的一个程序,子类继承了一抽象父类,一个抽象方法在父类中没有指出抛出异常,而我在子类中写了 throws 异常,结果没有通过编译。??


    在一个继承关系形成的等级结构里面,树叶节点均应当是具体类,而树枝结点均应当是抽象类/JAVA接口。也就是说不要去继承一个具体类。

    抽象类应当拥有尽可能多的代码,同时拥有尽可能少的数据。

    针对接口编程,针对抽象编程。

本文地址:http://com.8s8s.com/it/it10106.htm