OOP设计哲学的特征是什么,它们的含义是什么?

电脑杂谈  发布时间:2020-06-12 04:02:10  来源:网络整理

面向对象程序设计oop_高达oop_oop设计

已安装,继承的,多态的数据密封2113

数据5261包:

将需要操作的数据包装在只能由4102打开的框1653中,以避免其他人直接操纵数据. 这是面对对象的最基本特征. 效果是抽象到上层oop设计,使数据结构的详细信息不再已知.

示例:

在非OOP中,您可以使用struct(C类)将一些相关数据组织成一些,然后提供一些功能来操纵这些数据,例如

结构人{

int年龄;

int薪金;

char *名称;

};

可以为此结构提供一组函数,以实现某些数据操作,例如:

int GetAgeByName(const char * name);

面向对象程序设计oop_oop设计_高达oop

void SetSalaryByName(const char * name);

但是,当其他开发人员进行您的开发时,他们可以直接修改person.Salary,而无需使用您编写的SetSarlaryByName函数. 问题在于数据的结构是开放的,使得对数据的访问难以统一: 有人直接修改数据,有人通过功能对其进行了修改. 一般来说,这不是一件好事.

通过OOoop设计,将数据封装在一个类中并向外部提供一组操作函数,您就可以成功地控制对数据的访问: 统一使用函数访问,一个明显的优点是,如果您更改数据结构,则该操作功能界面未更改,不会影响现有代码.

此抽象层主要抽象数据的结构,以便程序员将注意力从数据本身转移到操纵功能上

继承:

继承提供了类级别的代码重用. 通过继承从基类获取数据的能力使您可以在现有代码的基础上进行开发,而不必从头开始重写或复制.

示例(Java):

班级员工{

public void DoWork(){...}

public void RaiseSalary(){...}

受保护的双倍工资;

}

面向对象程序设计oop_高达oop_oop设计

使用Employee类可以操纵员工的基本信息. 此时,我们将开发一个代表经理的Manager类. 由于Manager的许多基本属性与其他雇员相同,因此可以通过从Employee继承来省略开发. 力求重写与普通员工相同的属性和相应的操作.

多态性:

如果以C ++语法描述,则此功能提供了在运行时动态更改对象行为的功能:

对于在类中不使用多态性的函数,要调用的版本将由指针的类型确定,并且可以在编译时确定

对于在类中使用多态性的函数,要调用的版本将由指针指向的类型确定,而运行时将确定

示例:

基本课程{

公开

:

虚拟无效VirtualHello(){

cout <<“ Virtual Basic” << endl;

}

面向对象程序设计oop_高达oop_oop设计

void NotVirtualHello(){

cout <<“基本” << endl;

}

};

进阶课程: 公开基础课程

公开

:

虚拟无效VirtualHello(){

cout <<“虚拟高级” << endl;

}

void NotVirtualHello(){

cout <<“高级” << endl;

高达oop_面向对象程序设计oop_oop设计

}

};

int main(){

Basic * b = new Advance();

b-> NotVirtualHello();

b-> VirtualHello();

返回0;

}

输出:

基本

虚拟前进

SOA的特征是服务的概念. XML使通过调用服务获得可理解的数据成为可能. SOA在更高级别进行抽象. 与使用OO一样,焦点将进一步分离

示例:

理想情况下: 您是天使投资人. 最近,您打算在完全不熟悉的领域投资一家公司. 由于您完全没有该领域的经验,因此需要决策支持. 一家公司碰巧提供了服务,通过提供公司名称,您需要帮助您收集有关公司的信息,行业信息和数据分析以帮助完成决策. 通过使用消耗服务的应用程序,您可以做出明确的判断,而不必花费大量的精力来理解所有相关信息.

一个重要的功能是: 程序可以理解开放服务的形式


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-242532-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...