EOP简要概述 您所在的位置:网站首页 接口调用接口是什么 EOP简要概述

EOP简要概述

2024-07-13 08:34| 来源: 网络整理| 查看: 265

EOP简要概述

 

 

其实,现实世界中充满各种环境,人以及所有个体也在各种环境 中存在。

比如:自然环境,物理环境,人文环境,等等。

各个环境都有各自的规则,和交互方式。各环境提供不同功能。

如:人能在自然环境中生长发育,和生老病死,这些都由自然环 境掌控(好吧,起码是你我的身体);

在语言环境中人能通过统一语法规则同别人交流;

在物理环境中人体也必须尊崇所有物理法则,因为人的身体也 物质组成,也因此你我能通过操控自己的身体部分来完成各种

物理环境的事;

... ...

 

 

一、编程语言的发展

      软件技术发展到今天,途中产生了各种新语言,新工具。程序员和软件工程师每天都要克服日益增长的软件系统的复杂度,为在激烈的竞争中不处于劣势就必须不断寻求和掌握新的开发途径。如果现有开发语言和工具不满足软件产业的各种开发需求,则必然会导致软件危机的爆发。

      随着软件技术的进一步发展,开发过程中也暴露出越来越多的问题,如正确性,维护性,可重用性,可读性等。其中可读性是自有计算机程序以来从始至终要解决的问题。汇编语言的出现使原本只有机器认识的0,1代码编程了人可读的指令记号,使得程序员能写更长更复杂的代码。当约翰·巴克斯提出发明FOR-TRAN的时候,冯·诺依曼还提出了反对意见,因为冯并不了解代码可读性对软件生产力的促进作用,以及对计算机编程普及的推动作用。

       时至到了20世纪60年代,结构化编程思想诞生。结构化编程语言使得代码能将复杂问题分割成多个单一任务来解决。如果要问程序设计的本质是什么,学过C语言的大学生们会异口同声地回答你:“数据结构 + 算法”。而像C语言这样的面向过程的语言解决问题的途径集中在算法上,通常在设计程序前要描述出各个任务的流程图,然后写成多个函数通过划分不同的问题层次进行调用。

       然而60年代的软件危机,并未因此而改善。在大规模的项目开发中,结构化语言仍不堪重负。然后有了成为今日主流的面向对象语言。此时,在软件开发中看待问题的方式发生了根本性的转变。与面向过程语言注重算法形成对比,OOP将数据结构作为程序的基本。它把数据结构隐蔽起来,并同与之相关操作的函数封装在一起,外部只能通过暴露的函数来操作,以保护数据。OOP将问题抽象成一个个实体(既是对象 Object),围绕这些实体逐渐扩展出其他的实体。

面向对象语言的要素:

1)对象

2)类

3)封装

4)继承

5)多态

6)消息

 

依照以上要素OOP能使代码具有较高的抽象,通过建立实体模型来解决问题。如此一来,便很容易地抽象现实世界的事物。

一般情况抽象步骤如下:

1)通过事物的特征设计相应的数据结构

2)通过数据结构以及事物的行为建立相关函数

3)隐藏数据,只能通过暴露的相关函数来操作

4)通过对象间的引用描述事物之间的关系

5)对象之间可以互发消息来沟通,函数作为消息的形式

 

 

如著名架构师Neal Ford所说,我们通常用树状结构模型来抽象现实世界,由于大多数事物都是按照树状结构组织起来的,因此这种方式运作得非常出色。现实中大多数事情都是层次分明的。

但现实世界总是充满了各种错综复杂的分支和关联。打算用一个理想化的的模型对它进行建模是非常困难的。

  因此,OOP发展到今天,对现实事物的复杂建模已遇到了瓶颈。由于系统中高耦合关联,让开发者难以维护。层次体系也解决不了问题,因为它生来就是从上到下地依赖到底。为此,面向方面的概念出现了,可以横切现实世界实体。但它又增加了问题复杂度,也并未解决本质上的依赖问题。

 

 

二、EOP要解决的问题

  纵观软件发展史,发现从汇编到OOP是抽象程度越来越高的顺序过程。每提高一个抽象层次,处理问题的能力也就前进一大步。

要解决如今软件技术上难以攻克的问题,也势必要改变思维,朝更高的抽象迈进。今日OOP遇到的困难就是EOP要解决的问题。

包括程序之间的高耦合度,程序重用性,可维护性等。

 

 

三、了解EOP的编程方法

EOP关注的是什么?

      如果说面向过语言关注的是算法,面向对象语言关注的数

据结构,那么面向环境语言关注的就是数据本身。准确地说程序   的本质是数据 + 数据结构 + 算法,其中数据是EOP最关注的部分。

 

环境是什么?

环境是从层的概念演变而来,层是以往编程中有效降低软件复杂度的方法,但它有自上而下的依赖,所以难以改动。

环境是建立在层的基础之上,所以环境是用来描述一个层面里的内容的模块。

环境在层的基础上消除了依赖,所以一个环境里的内容无法和任何其他环境中的内容交互。

 

环境之间如何交互?

    前面提到环境之间没有依赖,那环境里的程序如何与另一个环境里的程序交互?答案是使用消息,前面说OOP中对象

间的消息通过函数来实现,会增加依赖;是静态,难以在运 行时作元处理;不公开,隐藏在程序的黑箱里;不友好。

EOP中的环境间消息传递,使用的就是我们关注的数据,是所有环境都认识的基本类型的数据。这样环境的接口都是开放的,且不会产生依赖。

根据数据形态的不同来匹配相应的操作。如简单的,根据数据类型不同来匹配的操作,复杂的通过模式匹配出http://..这样的消息,再复杂则可能是一个编程语言的语法。

目的显而易见,环境内部封装程序和数据机构,外部使用动态DSL(领域专用语言)作为接口。

如此可见环境通过消息来相互操作,而消息是可解释的,如此也提高了代码可读性。

 

环境里有些什么?

    环境里的内容更OOP的class里的内容相差无几,包含一组处理这一层次问题的函数和数据。但其中多了receiver(消息接受器),其作用是为了接受和匹配发送到该环境的消息数据。

 

三、EOP能做写什么?

     因为EOP现才刚刚起步,所以很不好说能做什么。而我开发EOP的目标是代替现在的OOP作为通用编程模式。EOP现阶段能到达的功能是无依赖地(起码是低耦合地)划分程序流程。

设想能做的功能有:

1)分布式系统

2)文本处理

3)仿真和建模

4)WEB服务端开发

5)C/S,B/S架构系统

6)脚本语言解释器,编译器

 

 

 

 

 

 

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有