发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 大数据 扩展性 并发编程 事件驱动 分布式 SOA
1 2 3 4 下一页 Go 4

为什么类是单继承的?接口是多继承的?

                   
2014-12-24 15:46
赞助商链接



如果将资源的组织结构看作空间的话资源确实是单继承的,确实应该是树。因为一个空间单元只可能有一个直接的父空间单元不可能会有两个,因为空间是不交叉的。
那个PrivilageBigram两两组合出的多继承应该是从运动的角度观察事物的,运动就是变化,就是时间。比如一个人肯定是只有一个直接领导的,但是这个人在开展工作的时候是可以从任何他人那里得到(继承或者别人委托给他)权限的,这是多继承的。
类是单继承的,接口是多继承的,人们的知识树的确是良好的、一致的。类关注的是结构、结构类比空间,接口关注的是行为、行为类比时间。
时间 == 运动 == 变化 == 状态的保持 == 连续性(关于这个等式的来源见末尾)
资源、空间是单继承的是因为这样:一个0 1物理开关在一个时刻只可能是至多一个单元(比如一个int类型包括一排32个物理开关)中的节点,一个物理开关不可能在同一个时间具有多个父节点。但是当世界运动起来后事情就不是这样了,世界运动起来就是引入时间维度(时间 == 运动 == 变化 == 状态的保持 == 连续性),引入时间维度后一个物理开关可以在不同时刻具有不同的父节点。

时间是什么?
设想一个状态:这个状态没有“物质”没有“空间”没有“能量”……总之什么也没有。让我用null来代表这个状态。 显然null不会突然间改变。因为一个空的世界怎么会‘突然’生出东西来呢?null若改变就得无缘无故地生出东西。null要保持 null的状态,null要连续,这里的“状态保持”需要时间,或者说状态保持就是时间,再或者说连续性就是时间。绝对的不变的状态不存在,时间是衡量状态改变快慢的物理量。状态不能突然改变的连续的性质使null具有了时间概念。

19
2014-12-24 19:03

下班回来的路上我突然感觉我悟到道了。单继承是棵正树,多继承是棵倒树;或者说单继承是棵倒树,多继承是棵正树。到底哪个定义成正哪个定义成负无需纠结。
单继承是子节点从父节点继承事物,多继承是父节点从子节点继承事务。这刚好是棵自然界的树,自然界的树有地上部分和地下部分。当那棵树获取输入(光、二氧化碳、氮磷钾元素)的时候是多继承的,是父节点从子节点继承事物;但那棵树生长的时候,当那棵树分配自身能量的时候是单继承的,子节点从父节点继承事物。这可能就是新陈代谢。这可能是道,是那个太极图上的道的分形。

2014-12-25 15:16

多继承恐怕就是一张网了吧。

2014-12-26 08:02

多继承是和场景有关,是动态的,如同一个演员演戏,更换不同的布景场景,他有不同的行为接口。

而单继承是静态的,是一种天然属性,和主体动作无关。

从动态和静态两个方面区分,就不会把动态的硬搞成静态的,函数动态组合能解决的硬是使用静态结构去解决,虽然都是树,但是创建树的时机不同。

2014-12-26 09:58

2014-12-26 08:02 "@banq"的内容
多继承是和场景有关,是动态的,如同一个演员演戏,更换不同的布景场景,他有不同的行为接口。 ...

确实是这样,如同DCI中观点。接口的出发点是想要去管理那棵动态的运动树。
接口试图表达的是事物的变化、运动、行为,是时间维度。类或者准确的叫struct(数据结构)试图表达的是事物的空间维度。
有这样的接口这是什么意思呢?
interface IUser{
string UserName{get;}
string Password{get;}
}
这样的接口看起来像class那样表达的是结构,其实还是在表达行为。人们抽象一个这样的接口是因为行为不是因为结构。
接口虽然可以多继承,但是接口表达的是变化、是运动,如果一个接口从很多个别的接口继承而来的话就会造成它可能具有很多个方向不一致的运动方向(有时候两个接口表达的运动方向可能是一致的,有时候可能是不一致的两者的方向是有大的夹角的),导致把问题复杂化了不好管理。
如果问题单元具有很多个变化方向的话会把问题复杂化导致不好管理。
虽然接口可以继承甚至可以多继承,但是接口应该是适合用来组合的不是用来继承的。

4Go 1 2 3 4 下一页

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系管理员 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com