10 Construction for Change
OO Design Principles: SOLID
1.SRP原则:不应该有多于一个的原因使得一个类发生变化,一个类一个责任。
2.OCP原则:开放封闭原则
对扩展性的开放:模块的行为应该是可拓展的,从而该模块可表现出新的行为以满足需求的变化
对修改的封闭:模块自身的代码是不应该被修改的
如何实现? ---- 抽象技术
3.ISP原则:不能强迫客户端依赖于它们不需要的接口,只提供必须的接口
就是尽量不要让接口太大,可以将一个方法很多的接口划分为很多小的接口,然后按需实现,避免实现很多不需要的方法
4.DIP原则:抽象的模块不应该依赖于具体的模块,具体应该依赖于抽象
语法符号
1.最基本的三种
- 连接 :使用空格分割即可,例如:y z 则匹配y后面跟着一个z的字符串
- 重复 :y* 表示匹配0个或者多个y(*零次或多次,+一次或多次,?零次或一次,{n,m}匹配n到m次)
- 选择 :使用" | ",例如: y | z 表示匹配y或者z
例如:(y z | a b)* 表示匹配0个或者多个yz和ab串
a ( b | c ) d 表示匹配abd或者acd
2.更多的操作符
- [….] : 表示匹配里面含有的任何字符
例如:[a-c]:表示匹配a或b或c
[aeiou] : 表示匹配a,e,I,o,u
- [^….]:表示不匹配里面含有的字符,其余的都会匹配
正则表达式:上述的符号去掉空格和引号,会使表达更加简洁,但会更加难懂