这虽然是用英文做的标题,但其真是意义,估计只有中国人才能懂。
首先要说明的是,Relationship Based Object(以下简称RBO),绝对是一个新的概念。因为它是我刚刚杜撰出来的。不过我想借此,表述我的一些在OO上的想法而已。有兴趣的朋友,可以共同讨论。
在说RBO之前,我想先说说中国的一个非常典型的人际处理方式:关系。有事托人找关系,没事大家拉关系。现在有人将这个说法提升了一下,叫“人脉”,表示的就是你这个人的处理世俗事情的能力。人脉越厚,越表示有能耐。
于是,我突然有一个想法,如果将这个“人脉”的概念,加入到OO中去,会是一个什么情况呢?
其实,在此之前,我已经和一位同事讨论过这方面的问题。他的想法是,西方人关注个体,于是出现了面向对象思想,而中国人关注关系,是不是也应该发明一个面向关系思想?他在这方面还进行过深入尝试,希望他能成功。有兴趣的可以到他的博客与他讨论(http://blog.csdn.net/cll0320)。
不过,我倒是感觉这两者是可以协调的。(我的这位同事说,那是因为我还受面向对象的毒害,所以不能完全摆脱他的影响)在中国,人也是独立存在的。只不过,这种人的有了一种特殊的能力,叫人脉。
于是,我提出了一个想法,如果一个对象A,因为它有了人脉,A因此可以借用或请用或贿赂B来完成某一特殊事情S,我们就可以认为A有S的能力。从面向对象的角度来看,调用A的人,并不需要知道A是如何完成S事情的。在原先的对象组织中,显然并没有完全封装好这点。
如果用程序的语言来讲,以前的完成方式是:
A.B.S();
而我提出的方式是:
A.S();
这种方式再加入到动态语言中,其方式完全符合其想法。我们在调用的时候,根本不需要关心对象是不是已经拥了这个能力。但是,一旦这个对象,能够通过人脉,从而获取这个功能的时候,我们也可以认为此对象已经拥有这个能力了。
当然了,如果要实现这样的方式,还需要编译器的修改。但有一点可以肯定,这是完全可以实现的。那么我们就只是来关心这样的改变之后的特点。
-
对于关系细节进行了封装。
-
符合动态语言中的鸭子类型原则
-
对象的能力是可以扩展的,当然了,这依赖于人脉的扩展。
-
可以更好地理解中国的社会,反过来讲,就是可以更好的描述现实社会。
-
形象地说明了,发展关系和发展技术同样可以赚钱的原因,而且,显然,人脉的能力扩展变得非常容易和快速。
后面两个纯属瞎诌。不可否认的是,我为这种代码上的简写[A.B.S()到A.S()],找到了一种思想依据,这对我来讲,已经很是兴奋了。不知道大家以为如何?欢迎大家拍砖!
分享到:
相关推荐
例如,如果(Subject, Relationship, Object)是一个正确的三元组,那么Subject向量加上Relationship向量应该接近Object向量。TansE通过对大量正确和错误三元组的学习,优化这些向量的表示,从而达到良好的预测效果。 ...
Arrays Intermediate This sample shows how to use TROArray for presentating DB tables in a master/detail relationship. Async Introduction This sample shows how to call methods on a RemObjects SDK ...
Finding relationship between classes and interfaces using object model diagrams Querying data Visualizing geographical data using various rendering Creating various kinds of Desktop Add-Ins ...
基于角色的访问控制(Role-Based Access Control, RBAC)是一种广泛应用于现代信息系统中的权限管理机制。它通过定义角色来管理用户权限,简化了权限分配与维护的过程。本文将深入探讨RBAC的原理及其数据库设计方法...
Based on the system function modules, it creates system function module diagrams, flowcharts, and E-R (Entity-Relationship) diagrams. The system architecture is then designed, and coding is carried ...
Shore-based LiDAR for Coastal Seawater Monitoring. Proceedings ofEARSeL-SIGWorkshop, Figure 1, pg. 47). 3 reflected\\ :.;/ incident 1 I 1 . '\ I lAIR \ •••••••• ••••••••••••• ••...
- **Plants and Controllers:** The relationship between plants (systems being controlled) and controllers (systems that control). - **Conditionals and Switches:** Implementing conditional behavior and ...
Chapter 8Primitives as Typesexplores the relationship between the primitive types and objects of their corresponding wrapper classes, and how boxing and unboxing can transparently convert between ...
其他如Object-Oriented Valuation (OVA) 关注资产的面向对象评估,Strategic Value Analysis (SVA) 侧重于战略价值评估,Customer Relationship Management (CRM) 则是关于建立和维护客户关系的系统。此外,Balanced...
首先,"Object Detection And Localization using a knowledge graph on spatial relationship.pdf" 提到的知识图谱在空间关系上的应用,展示了如何利用知识图谱进行目标检测和定位。知识图谱可以存储物体间的空间...
The Relationship of C# to .NET 4 The Common Language Runtime 4 Advantages of Managed Code 4 A Closer Look at Intermediate Language 7 Support for Object Orientation and Interfaces 8 Distinct Value and ...
- **A Unidirectional Set-Based Association**: You'll explore how to map a one-to-many relationship using a unidirectional association. - **Working the Association**: This covers how to manipulate ...
EJB 3.0常用于构建大型的企业级应用,如电子商务系统、CRM(Customer Relationship Management)、ERP(Enterprise Resource Planning)等,提供可靠的服务和数据管理。 通过《EJB3.0實例教程》.pdf,读者将能够...
- **Epipolar Geometry:** Describing the geometric relationship between two calibrated cameras and the corresponding points in their images. - **Essential Matrix and Fundamental Matrix:** Mathematical ...
#### 三、面向对象数据库与XML(Object-Based Databases and XML) - **面向对象数据库(Object-Oriented Databases)**: 面向对象数据库能够存储复杂的数据类型,如对象和类,这使得它们非常适合于处理具有复杂...
33. CRM (Customer Relationship Management):客户关系管理,用于管理企业与客户间交互的系统。 34. SCM (Supply Chain Management):供应链管理,协调从供应商到客户的物流、信息流和资金流。 35. BI (Business ...