面向对象和数据库有各自的优点:面向对象的优点在于模块化和处理复杂的业务逻辑,而数据库的优点在于数据存储、查询、统计。
面向对象和数据库各有其特长,何不让它们发挥各自的特长呢?
面向对象,你就处理复杂的业务逻辑~
数据库,你就处理数据的查询、统计、简单的业务逻辑~
一般常用的业务逻辑类编写方式
用类把你的函数封装起来
方法:声明一个static类,然后把函数放到类里。不要说这个太不像面向对象了,类是一个模块,能准确定义一个类是面向对象中最困难的事情。
数据处理:手写SQL
数据容器:编程工具提供的数据库控件。
// 客户类
static class Customer

{
// 输入客户信息
static public bool Insert(int Id,int Name)
{
}
// 更新客户信息
static public bool Update(int Id,int Name)
{
}
//删除客户信息
static public bool Delete(int Id)
{
}
//获得客户信息
static public DataSet GetInfo(int Id)
{
}
//获得客户列表
public DataSet GetList()
{
}
}
优点
- 对面向对象理论方面要求不高,通过短时间学习,就可以掌握
- 代码简单易懂
- 代码效率高
缺点
- 不能充分发挥面向对象的特点
- Update和Insert把数据库字段作为参数,当添加字段或删除字段时,需要修改函数。
发挥面向对象和数据库的特点
方法:声明一个Entity类和一个业务逻辑类
数据处理:手写SQL
数据容器:插入、更新 、传递单条记录使用Entity对象,一组记录使用数据库控件
// 客户Entity
class CustomerEntity

{
public int Id;
public string Name;
}
// 客户类
class Customer

{
private int Id;
//构造
public Customer(int Id)
{
this.Id = Id;
}
// 输入客户信息
public bool Insert(CustomerEntity CustEntity)
{
}
// 更新客户信息
public bool Update(CustomerEntity CustEntity)
{
}
//删除客户信息
public bool Delete()
{
}
//获得客户信息
public CustomerEntity GetInfo()
{
}
//获得客户列表
public DataSet GetList()
{
}
}
优点
- 能发挥面向对象和数据库各自的特点
- 代码效率高
缺点
- 需要比较全面的面向对象理论
- 使用了Entity类,需要自动生成工具
使用O/R Mapping 工具
方法:使用O/R Mapping工具
数据处理:O/R Mapping 工具自动处理
数据容器:对象
// 客户类
class Customer

{
public int Id;
public string Name;
// 输入客户信息
public bool Insert(CustomerEntity CustEntity)
{
}
// 更新客户信息
public bool Update(CustomerEntity CustEntity)
{
}
//删除客户信息
public bool Delete()
{
}
//获得客户信息
public CustomerEntity GetInfo()
{
}
//获得客户列表
public IList GetList()
{
}
}
优点
- 能发挥面向对象特点
- 可以自动把对象模型转换到数据模型
- 能自动处理,简单的CURD
缺点
- 需要很高的能力和耐心
- 流行的O/R Mapping 工具都是开源出来的,没有保障
- 还不是很完善,存在不可预测的危险
- 对于处理复杂的对象关系,配置复杂
- 需要额外学习O/R Mapping 方面的知识




.Net分析与设计





此内容无附件