软件构造复习总结(3)

        快要考试了,根据所给提纲和上课所学边复习边罗列一下重难点吧。学得不好,如有疏漏欢迎指正!

一、Programing for/with reuse

        Programming for reuse 面向复用编程:开发出可复用的软件

        Programming with reuse 基于复用编程:利用已有的可复用软 件搭建应用系统

        优点:降低成本和开发时间、经过充分 测试,可靠、稳定、标准化,在不同应用中保持一致

        软件构造过程中的任何实体都可能被复用

        可重用性高的表现:小、简单、与标准兼容、灵活可变、可扩展、泛型和参数化、模块化、稳定、将变化限制在局部、稳定、丰富的文档和帮助

二、LSP

        更弱的前置条件和更强的后置条件、不变量要保持、子类型方法参数逆变、异常类型协变

Example:

三、协变、反协变

        协变:父类型 --> 子类型时越来越具体的specific;返回值和异常值不变或者更具体

        不允许反协变

四、数组的子类型化

        代码重用,如List --> ArrayList

五、泛型的子类型化

        类的重用,如L --> Vertex

六、泛型中的通配符(?)

        可指代满足某种要求的一切类型,如List<? >

        A list of unknown type

        关键字:super(父类)、extends(子类)

七、Delegation

        委派/委托:一个对象请求另一个对象的功能

        绑定较弱、关系限定较弱、避免大量无用的方法

        继承能做委托都能做

        “委托”发生在object层面,而“继承”发生在class层面

        三种形式:Use、Association、Composition/Aggregation

八、Comparator and Comparable

        (1)Comparator:外部比较器,需要实现compare()方法,对外部传入的两个类进行比较,从而让外部方法在比较时调用

        (2)Comparable:内部比较器,需要实现compareTo()方法,传入一个外部参数进行比对

九、CRP原则

        优先使用委托编程

Example:

十、接口的组合

十一、白盒框架的原理与实现

        白盒框架:通过代码层面的继承进行框架扩展

Example:

十二、黑盒框架的原理与实现

        黑盒框架:通过实现特定接口/delegation进行框架扩展

Example:

二者区别:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值