软件构造复习总结(4)

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

一、可维护性的常见度量指标

        圈复杂度、代码行数、可维护性指数(MI)、继承的层次数、类之间的耦合度、单元测试的覆盖度等

二、聚合度与耦合度

        聚合度:模块内部各成份(语句或语句段)之间的联系

        耦合度:从模块外部考察模块的独立性程度

        目标:高内聚、低耦合

Example:

三、SOLID

(SRP) The Single Responsibility Principle 单一责任原则 :

        不应有多于1个的原因使得一个类发生变化

(OCP) The Open-Closed Principle 开放-封闭原则

        对扩展性开放,对修改封闭

        ——抽象与接口

(LSP) The Liskov Substitution Principle Liskov替换原则 

        子类必须能替换其基类型

(DIP) The Dependency Inversion Principle 依赖转置原则 

        具体依赖于抽象而非抽象依赖于具体

        ——通过interface建立联系而非具体子类

(ISP) The Interface Segregation Principle 接口隔离原则

        客户端不应依赖于他们不需要的方法

        与专用接口建立联系——大的通用接口改为具体的接口

        

四、语法、正则表达式

        ·产生式:表示该变量根据其他变量,运算符和常量的定义

  ·非终结符:相当于变量,表示一组字符串

  ·终结符:相当于常量,语法分析树中的叶子

  ·运算符:ab,a*,a|b,[^a-c],[a-c],a+,a?

正则语法:

        简化后可以表达为一个产生式而不包含任何非终止节点

        除去所有引号和空格

        特殊符号:

        Example:

五、设计模式

1.Creational patterns 创建型模式

        factory method 工厂模式:

        定义一个用于创建对象的接口,让其子类来决定实例化哪一个类,即把创建对象的职责分给另一个类来实现

2.Structural patterns 结构型模式

        adapter 适配器模式:

        将某个类/接口转换为client期望的其他模式

        Example:

         decorator 装饰器模式:

        对每一个特性构造子类,通过委派机制增加到对象上

        存在组合爆炸、重复量大等问题:由继承导致

        Example:

3.Behavioral patterns 行为类模式

        strategy 策略模式:

        有多种不同的算法实现同一个任务,但需要client根据需要动态切换算法,而不是写死在代码里

        Example:增加了付款方式却不更改原代码

         

        template method 模板模式:

        做事的步骤一样,但具体方法不同

        共性的步骤在抽象类内公共实现,差异化步骤在各个子类中实现

        利用了继承和重写

        Example:

         iterator/iterable 迭代器:

        不管对象被放进哪里,都应该提供同样的遍历方式

        让自己的集合类实现Iterable接口,并实现自己的独特Iterator迭代器(hasNext, next, remove),允许客户端利用这个 迭代器进行显式或隐式的迭代遍历

         visitor 访客模式:

        对特定类型的object的特定操作(visit),在运行时将 二者动态绑定到一起,该操作可以灵活更改,无需更改被visit的类

        本质上:将数据和作用于数据上的某种/些特定操作分离开来。

        Example:

        从结构上看与迭代器模式相同,但实现方法不同:

         与策略模式都是建立两个对象的动态联系,但是所站角度不同:

各种模式对比:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值