软件构造——第五章助记
内容简图
较详细细节重点
Halstead Volume:Halstead容量,关系到Halstead 复杂度分析。Halstead复杂度分析通过对出现的操作(如if, <, <=, +=, -=, =等)、变量(如a, b)和常量(如1,100)的种类和频数进行统计,前者记为n,后者记为N,用V = Nlog2 (n) = 210.68进行Volume进行计算。
Coupling & Cohesion:前者为耦合,个人理解为类与外部类的关联程度;后者为聚合,个人理解为内部方法关系的紧密程度。低耦合高聚合保证了模块的独立性和功能性。
SOLID:
- The Single Responsibility Principle 单一责任原则:即一个ADT只负责一个功能,不能够在计算的同时具有绘图功能,更改航班同时能够管理高铁。
- The Open-Closed Principle 开放-封闭原则:对行为的扩展性进行开放,但是对代码的修改进行封闭,有些类似于Blackbox reuse.
- The Liskov Substitution Principle
- The Interface Segregation Principle 接口聚合原则 :接口应当尽可能小,避免一个接口包含多种无相关功能,这点上有些像SRP, 但是分割标准变为用户需求,根据需求进行划分,对相关功能可以放在同一个接口下,从而实现接口尽可能少。
- The Dependency Inversion Principle 依赖转置原则:抽象模块不能够依赖于具体模块存在,具体模块应当依赖于抽象模块存在。
GRASP:General Responsibility Assignment Software Patterns(principles),包含Creator,Information Expert(责任与所持有信息相一致),Low coupling。Controller(暂时不能理解)。High Cohesion。Polymorphism。Pure Fabrication(解耦),Indirection,Protected Variations(防止不稳定的存在)
Regular expression
java的正则表达式和自动机的正则表达式有一些表述上的不同,但是本质一样。java中不需要+号表示或,具有下图规则。