读帖笔记
来源:互联网 发布:思科网络防火墙 编辑:程序博客网 时间:2024/05/22 15:38
面向对象思想来源于分类学理论。
你们讨论的问题好像是抽象和划分。
在进行阐述我的理解之前,先看几个概念的定义(以前学习时候的笔记)。
客体: 客观存在并可观察到的事物,也包括想象产生的事物.任一客体都具有众多特性.
(可以认为这些客体就是这些特性的集合).
概念: 根据一群客体所共有的特性形成某一概念.
(可以看作特性的集合,这些特性是集合空间里面的所有客体共有的)
内涵:一个概念所反映的客体的全部特征称为概念的内涵。
外延:一个概念所指客体的范围称为概念的外延.
抽象:抽取事物的共有特性将其概括为概念的过程.
划分:同一概念可以依据不同的分类标准(这些标准也叫做维度)划分为若干个不同的概念组.
(分类标准就是集合论里面的等价关系--自反,对称,传递)
继承是一种特化关系,它刚好和抽象相反,
抽象是一种泛化关系.这两种关系在集合论里面是偏序关系(自反,反对称和传递的)。
在进行讨论继承之前,先讨论讨论抽象。因为继承依赖的模型来源抽象的过程。
抽象的过程是自底向上的。
给定一个集合空间,空间里有5个元素,
比如都是由三条直线线段组成的封闭的东西。
A(10,20,15)
B(15,15,20)
C(10,10,10)
D(11,12,13)
E(30,30,31)
A-E都是客体,每一个客体都若干相同的特征如
1.都是直线段
2.直线段的数目是三个
3.三条线段每一条的两端都和分别和另外两条的一端相连。
假设就抽象出这么些特征吧。我们把这些特征集合称作一个叫三角形概念。
注意三角形这个东西是一个抽象的东西,没有任何的实体。
如果没有别的需要,这样的抽象就够了。
直接实例化就是需要的客体了。
但是你们觉得不够用,然后在这一层概念上,
你们尝试做一种划分,
根据等价关系 每两条鞭相等 划分出等价类,
{三条边都相等三角形--等边三角形}
{两条边都相等,但不等于第三条边三角形-- 等腰非等边三角形}
{三条都不相等的三角形 --非等边非等腰三角形}
这三个概念是并列概念。
是属于三角形这个上位概念的下位概念。
也可以说是三角形的外延。
三角形和等边三角形的关系是层级关系,确切地说是层级关系中的属种关系。
可是另外一些人尝试了另外一个划分。
根据等价关系 三条边都相等 得到了另外一个划分
{三条边都相等三角形--等边三角形 -- 等边三角形}
{不是三条边都相等的三角形 -- 非等边三角形}
这两个子概念是三角形的得下位概念,同上一个的分析。
他们对这样的划分还不满意,所以对非等边三角形进行再次细化。
比如依据等价关系 两条边相等 划分出
{等腰三角(实际上在上位概念的限制下,是等腰非等边三角形)}
{非等腰三角(实际上在上位概念的限制下,是非等腰非等边三角形)}
这样得到的是两个不同的分类体系。
哪个合理,哪个不合理没有定论,根据不同的专业领域和研究需要而定,如steedhorse(晨星) 所说。
而且得到分类的体系的方法有几种
一种是纯自顶向下的。
一种是纯自底向上的。
一种是混合的,上下求索。
你们讨论的分歧,个人觉得是概念有重叠了,也就是讨论的东西不是在同一个划分标准下。
举个形象的例子,如果三角形还有颜色的话,如集合空间变成
A(10,20,15,红)
B(15,15,20,黄)
C(10,10,10,绿)
D(11,12,13,红)
E(30,30,31,黄)
那么上面的第一个种类体系中在
三角形的概念下,还存在一个另外一个维度的划分。
等价关系:颜色相同
{红颜色的三角形}
{黄颜色的三角形}
{绿颜色的三角形}
I would work hard to NOT use CHAR() or VARCHAR() as a PK but use an int with an auto_increment instead. This allows you to use that user_id in child tables if needed and queries on the PK should be faster.
主键和外键是相对于整个数据库来说的,总体来说就是要实现数据库的实体完整性、参照完整性等完整性的约束。并满足数据库规范化的要求 1NF 、2NF...
对于一个表定义了一个主键,对于该表可以为通过该键唯一地表示表中的每一记录。外键是相对于表中的一个列给它的一个约束,一般是另一个表中的主键,该列的值必须在另一个表中出现。另一个表中的数据如果被该表引用,就必须先删除该表的引用才能删除另一个表的记录
- 读帖笔记
- 读>笔记
- Review_oracle 读笔记
- 读《野蛮生长》笔记
- WinCE5读核笔记
- 读《坦克战》笔记
- 读内核笔记索引
- 读深入浅出Android笔记
- 读《编程珠玑》笔记
- 读《C++ primer》笔记
- 读计算机原理笔记
- 读 "Effective STL" 笔记
- 读Effective C++笔记
- 笔记4--读源码
- 读webmagic笔记
- 读《暗时间》笔记
- 读 Animations Explained 笔记
- 读rails圣经笔记
- NETBIOS()获得网卡MAC
- 四种连接数据库的方法(DriverManager、DataSource子类、DBCP、c3p0)
- iPhone压缩与解压
- post-build event copy 命令 错误 code 1
- ftp命令大全
- 读帖笔记
- 纪念一个朋友的心情转变--结婚
- C/C++语言void及void指针深层探索
- windows运行对话框命令大全
- C struct 中字节对齐问题
- X3DAudio中声道音量跳变的问题
- 存储程序控制---最根本的原理
- c++入门学习笔记指针篇
- wordpress安装经历