标签:四种 tor 阶段 observer 通配 define over 替换 osi
第五章第二节 设计可复用的软件
1.LSP
-Subtypes can add, but not remove methods 子类型可以增加方法,但不可删
– Concrete class must implement all undefined methods 子类型需要实现抽象
类型中的所有未实现方法
– Overriding method must return same type or subtype 子类型中重写的方法
必须有相同或子类型的返回值
– Overriding method must accept the same parameter types 子类型中重写的
方法必须使用同样类型的参数
– Overriding method may not throw additional exceptions 子类型中重写的方
法不能抛出额外的异常
– Same or stronger invariants 更强的不变量
– Same or weaker preconditions 更弱的前置条件
– Same or stronger postconditions 更强的后置条件
强行为子类型化
协变:
父类型->子类型:越来越具体specific
返回值类型:不变或变得更具体
异常的类型:也是如此
反协变
父类型->子类型:越来越具体specific
参数类型:要相反的变化,要不变或越来越抽象
2.数组是协变的
3、泛型中的LSP
使用通配符"?"
4. Delegation and Composition
如果要用Collections.sort()
方法一:继承comopartor
Override:int compare(T o1, T o2)
方法二:实现comparable
写ompareTo()函数
复合继承原则(CRP)
四种deletion方式:
框架:
框架分为白盒框架和黑盒框架。
标签:四种 tor 阶段 observer 通配 define over 替换 osi
原文地址:https://www.cnblogs.com/masteryellow/p/9214312.html