面向对象与哲学

http://baike.baidu.com/link?url=L9od0cPynZSezvhH_QoP9kDI8oB1d9trb9hts5OtUqUyAbqsYRP_RJeuLw1oZhjtT7aPjKCB5Ur58bO4aZMKKxRMZKBiGD9aR5Baxo0cKpwUNofsImBZon8nHJe-DyaDPH6BObkIfQxG6iUJlDdaf_

系统中一切事物皆为对象;对象是属性及其操作的封装体;对象可按其性质划分为类,对象成为类的实例;实例关系和继承关系是对象之间的静态关系;消息传递是对象之间动态联系的唯一形式,也是计算的唯一形式;方法是消息的序列。

从世界观的角度可以认为:面向对象的基本哲学是认为世界是由各种各样具有自己的运动规律和内部状态的对象所组成的;不同对象之间的相互作用和通讯构成了完整的现实世界。因此,人们应当按照现实世界这个本来面貌来理解世界,直接通过对象及其相互关系来反映世界。这样建立起来的系统才能符合现实世界的本来面目。

http://www.cnblogs.com/leoo2sk/archive/2009/04/09/1432103.html

“世界观(德文:Weltanschauung)意为‘着眼世界之上’,是人们对世界的总的根本的看法。任何哲学问题的探讨,归其出发点和本源,都是世界观的问题。什么样的世界观决定了什么样的哲学观点。——马克思”

1.1、看世界

我们知道,哲学领域中,最根本的对立是唯物主义和唯心主义的对立,而附属其下,又有许多对立,如形而上学和辩证法的对立、可知论和不可知论的对立等等。这些对立形成了哲学的基本体系、派别和出发点。实际上,这些对立,都是世界观的对立。世界观,简而言之即如何看待这个世界。世界观是一切哲学问题的本源和出发点。
      同样,在程序世界里,也有着不同的世界观。而这其中最根本的对立便是过程论和对象论的对立,这个对立,衍生出了面向过程和面向对象两种方法论。于是,要真正理解面向过程和面相对象,我们就不得不先深究一下程序世界中这两种世界观。
      首先要提到的是,不论是过程论还是对象论,都承认一点,那就是程序世界本质上只有两种东西——数据和逻辑。数据天性喜静,构成了程序世界的本体和状态;逻辑天性好动,作用于数据,推动程序世界的演进和发展。尽管上述观点是统一的,但是在数据和逻辑的存在形式和演进形式上,过程论和对象论的观点截然不同。

过程论认为:数据和逻辑是分离的、独立的,各自形成程序世界的一个方面(Aspect)。所谓世界的演变,是在逻辑作用下,数据做改变的一个过程。这种过程有明确的开始、结束、输入、输出,每个步骤有着严格的因果关系。过程是相对稳定的、明确的和预定义的,小过程组合成大过程,大过程还可以组合成更大的过程。所以,程序世界本质是过程,数据作为过程处理对象,逻辑作为过程的形式定义,世界就是各个过程不断进行的总体。

对象论认为:数据和逻辑不是分离的,而是相互依存的。相关的数据和逻辑形成个体,这些个体叫做对象(Object),世界就是由一个个对象组成的。对象具有相对独立性,对外提供一定的服务。所谓世界的演进,是在某个“初始作用力”作用下,对象间通过相互调用而完成的交互;在没有初始作用力下,对象保持静止。这些交互并不是完全预定义的,不一定有严格的因果关系,对象间交互是“偶然的”,对象间联系是“暂时的”。世界就是由各色对象组成,然后在初始作用力下,对象间的交互完成了世界的演进。

时间: 2024-11-08 22:40:23

面向对象与哲学的相关文章

编程思想、哲学、道与术

一切的起源:问题及问题的求解: 编程是为了解决问题,而解决问题可以有多种视角和思路: 世界观与方法论: 马克思:世界是物质的,物质是运动的:运动着的物质是普遍联系和永恒发展的: 编程思想与世界观: 我们知道,哲学领域中,最根本的对立是唯物主义和唯心主义的对立,而附属其下,又有许多对立,如形而上学和辩证法的对立.可知论和不可知论的对立等等.这些对立形成了哲学的基本体系.派别和出发点.实际上,这些对立,都是世界观的对立.世界观,简而言之即如何看待这个世界.世界观是一切哲学问题的本源和出发点. 同样,

通过fsharp 使用Enterprise Library Unity

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">使用Ioc概念的Unity库的优点,简单的说就是进一步解耦系统各组件的依赖关系.客户端代码只需依赖需要使用的接口(服务)就可以快速的进行开发.</span> 1.基本流程,定义类-->配置container-->解析类,并使用-->析构(依策略) 2.注册的

ActorModel 概念翻译

学习 skynet 时初次接触到 ActorModel 模型,始终觉得有必要从宏观上了解 ActorModel 的概念,所以以维基上这篇文章为参考,把文章中的部分内容翻译成中文,好让自己体会一下 ActorModel 一些概念.再次说明,请原谅我蛋疼的翻译. ActorModel 在计算机科学中,actor 模型是并发计算中的一种数学模型,它把 "actors" 作为并发计算的通用原语:响应它接收到的消息,一个 actor 自己可以决定自己的事务,可以创建更多的 actors ,发送更

转并修改:编程范式(Programming Paradigm)

编程范式(Programming Paradigm)是某种编程语言典型的编程风格或者说是编程方式.随着编程方法学和软件工程研究的深入,特别是OO思想的普及,范式(Paradigm)以及编程范式等术语渐渐出现在人们面前.面向对象编程(OOP)常常被誉为是一种革命性的思想,正因为它不同于其他的各种编程范式.编程范式也许是学习任何一门编程语言时要理解的最重要的术语. 托马斯.库恩提出“科学的革命”的范式论之后,Robert Floyd在1979年图灵奖的颁奖演说中使用了编程范式一词.编程范式一般包括三

面向对象编程思想的哲学起源(转载)

http://www.xuebuyuan.com/566309.html 本来想象着写一整篇「面向对象编程思想的哲学起源」这样的题目,笔走纸上,方才发现这样的题目足够出本书,知识不够,写不动.但心里还是想写点自己的所思所想. 全篇就拿JAVA来举例了.众所周知,面向对象的四大基本要素:抽象(Abstract).封装(Encapsulation).继承(Inheritance).多态(Polymorphism). 很多人坚持<逻辑学>是唯物哲学的基础,不懂,姑且不论.哲学就是对自然学科的抽象,看

C++学习 8.1 - 欢迎进入面向对象编程

C++学习系列文章均翻译自learncpp.com,一个非常好的C++学习网站,这个网站让我领悟到原来深奥的道理也可以讲的如此浅显易懂, 如果所有的软件都有类似的网站该多好啊,为了加深印象,我决定逐章翻译一下这个网站,哎,我自己都不相信我能做到... 之前的所有章节到目前为止都有一个共同的特点:他们都是非面向对象的.现在你已经掌握了一些基本知识我们可以进入面向对象编程了,这才是重头戏! 在传统的编程方法中,程序只是一系列发给电脑的指令,通过定义数据(通过变量)然后处理数据(通过语句和函数).数据

如何培养面向对象的编程思想(转)

1.什么是面向对象? 面向对象是专指在程序设计中采用封装,继承,多态和抽象的设计方法.面向对象的程序设计语言必须有描述对象及其相互之间关系的语言成分.这些程序设计语言可分为以下几类:系统中一切事物皆为对象:对象是属性及其操作的封装体:对象可按其性质分类,对象成为类的实例:实例关系和继承关系是对象之间的静态关系:消息传递是对象之间动态联系的唯一方式,也是计算的唯一形式:方法是消息的序列. 2.如何理解面向对象? 从世界观的角度可以认为:面向对象的基本哲学是认为世界是由各种各样具有自己的运动规律和内

Linux应用环境实战10:Bash脚本编程语言中的美学与哲学(转)

阅读目录 一.一切皆是字符串 二.引用和元字符 三.字符串从哪里来.到哪里去 四.再加上一点点的定义,就可以推导出整个Bash脚本语言的语法了 五.输入输出重定向 六.Bash脚本语言的美学:大道至简 总结: 我承认,我再一次地当了标题党.但是不可否认,这一定是一篇精华随笔.在这一篇中,我将探讨Bash脚本语言中的美学与哲学. 这不是一篇Bash脚本编程的教程,但是却能让人更加深入地了解Bash脚本编程,更加快速地学习Bash脚本编程. 阅读这篇随笔,不需要你有Bash编程的经验,但一定要和我一

Python基础-第七天-面向对象编程进阶和Socket编程简介

本篇内容: 1.面向对象编程进阶-静态方法 2.面向对象编程进阶-类方法 3.面向对象编程进阶-属性方法 4.面向对象编程进阶-特殊成员(内置方法) 5.面向对象编程进阶-反射 6.异常处理.断言 7.Socket编程简介 一.面向对象编程进阶-静态方法 1.静态方法的实现 通过@staticmethod装饰器可以把其装饰的方法变为一个静态方法: 变成静态方法后,形参中可以不用写self了.如果写了self,默认是不会把对象本身传递给self,需要手动传递: class Dog(object):