OOP设计理念特点有哪些,各特点含义?谈谈你对SOA设计思想的看法和其中涉及到的几种重要的技术?

来源:百度知道 编辑:UC知道 时间:2024/06/01 07:57:18

数据封装, 继承, 多态
数据封装:
将需要操作的数据包装在一个只有自己能够打开的盒子里, 避免别人直接操纵数据, 这是面对对象的最基本特点, 效果是向上层的抽象, 使得数据结构的细节不再可知.
举例:
非OOP中,可以使用struct(类C)将一些相关的数据组织到一些, 然后提供一些函数来操纵这种数据, 比如
struct Person{
int Age;
int Salary;
char* Name;
};
针对这个struct可以提供一组函数来实现一些数据操纵, 比如:
int GetAgeByName(const char* name);
void SetSalaryByName(const char* name);
但是其他开发者拿到你的开发有可能不使用你写的函数SetSarlaryByName而是直接修改person.Salary,问题在于数据的结构公开, 使得对数据的访问方式变的难以统一:有些人直接修改数据, 有些人通过函数修改. 通常来说这不是一件好事.
通过OO,将数据封装在类内并向外提供一组操作函数, 就能成功的控制对数据的访问方式:统一为使用函数访问, 一个显而易见的好处是如果你改变了数据结构而操作函数接口没有改变, 将不会影响到已经存在的代码.

这一层抽象主要是抽象掉了数据的结构, 使得程序员的注意力从数据本身放在操纵函数上

继承:
继承提供了类级别代码复用, 通过继承获得基类的数据, 能力使得你有能力在已有代码基础上开发而不是从头再写一遍或者copy.
举例(Java):
class Employee{
public void DoWork(){...}
public void RaiseSalary(){...}
protected double salary;
}
Employee类使得对于员工基本信息的操纵成为可能, 这时候再开发一个表示经理的Manager类, 由于Manager的很多基本属性与其他员工是一样的, 通过继