楼上早。
同意T1。动态性就是带来了松耦合,把静态语言的dispatch by type强契约,变成了dispatch by name,甚至dispatch by pattern等弱契约。
到了最后,dispatch 干脆就弱化为 DSL,Message Protocal。到了Message Protocal,这就是SOA。动态性最终带来的就是DSL, SOA。
关于静态类型的更为臭名昭著的例子是Visitor Pattern的Type Dispatch。有两个选择,
或者使用 instanceof/Class.isAssignableFrom/Type Cast,或者引入visitable (or visited) interface。
由于摆脱了类型契约,动态语言中就没有这个麻烦。
另,T1咋就盯上了吱吱熊,有事没事就拿咱小熊作靶子呢?
同意T1。动态性就是带来了松耦合,把静态语言的dispatch by type强契约,变成了dispatch by name,甚至dispatch by pattern等弱契约。
到了最后,dispatch 干脆就弱化为 DSL,Message Protocal。到了Message Protocal,这就是SOA。动态性最终带来的就是DSL, SOA。
关于静态类型的更为臭名昭著的例子是Visitor Pattern的Type Dispatch。有两个选择,
或者使用 instanceof/Class.isAssignableFrom/Type Cast,或者引入visitable (or visited) interface。
由于摆脱了类型契约,动态语言中就没有这个麻烦。
另,T1咋就盯上了吱吱熊,有事没事就拿咱小熊作靶子呢?