当前位置: 网学 > 编程文档 > 其他类别 > 正文

系统架构师谈企业应用架构之系统设计规范与原则2

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/01/12
的来说就是让二个类之间的依赖关系通过接口来解

耦,让一个类依赖一个接口,然后让另外一个类实现这个接口,通过构造注入或者属性注入的方式来实现依赖。简单来说就是抽象不依赖于细节,细节依赖于抽象。下

面我们来举例说明:

/// <summary>

/// 汽车制动系统

/// </summary>

public interface IControl

{

int UpSpeed();

bool Brake();

}

/// <summary>

/// 其他服务

/// </summary>

public interface IServer

{

bool Radio();

bool GPS();

}

具体的使用

/// <summary>

/// 汽车

/// </summary>

public class Car

{

private IControl control = null;

private IServer server = null;

public Car(IControl con, IServer ser)

{

control = con;

server = ser;

}

public void Start()

{

control.UpSpeed();

}

public void Play()

{

server.Radio();

}

public void Map()

{

server.GPS();

}

}

上面简单的举例说明,并没有给出具体的实现,只要实现上面的2个接口即可,这里就不详细说明了,希望大家能够明白。错误之处还请大家指出。

(5)、(ISP)接口隔离原则:简单的来说就是客户不关心细节的东西,他就只关心自己能够得到的服务,而面向对象的原则我想大家都知道,通过接口的方式来提

供服务。因此我们提供给客户的是一系列的接口,那么这样就具有很好的低耦合性。我们来简单的举例说明:以ORM中的简单的持久化操作来说

public interface IORM

{

/// <summary>

/// 保存

/// </summary>

/// <returns>返回影响的行数</returns>

int Save();

/// <summary>

/// 删除

/// </summary>

/// <returns>返回影响的行数</returns>

int Delet();

/// <summary>

/// 获取所有列表

/// </summary>

/// <returns>返回一个DataTable</returns>

DataTable GetList();

}

这里我们让一个实体来继承实现。

public class ORM : IORM

{

#region IORM 成员

public int Save()

{

return 1;

}

public int Delet()

{

return 1;

}

public System.Data.DataTable GetList()

{

return new System.Data.DataTable();

}

#endregion

}

业务层的实现

public class Entity

{

private IORM orm = null;

public Entity(IORM orm1)

{

orm = orm1;

}

public int Save()

{

return orm.Save();

}

public int Delete()

{

return orm.Delet();

}

}

这里我就不贴出来测试代码的实现了,后面我会把代码贴出来下载,如果有兴趣的同仁可以下载看看。当然我这里只是抛砖引玉,不足之处,还请大家多多

指出。面向对象设计中还有很多的原则,这里也不会一一复述。这里只是冰山一角,还希望大家多多提出宝贵意见。

2、面向切面编程

面向切面编程,其实就是面向方面编程,其实这个概念很早之前就提出了,但是并没有广泛的流行,这个是比较让人不解的地方,我平时其实使用的也是比

较少的。不过我们在系统架构中却是非常有用,特别是在关注点的分离的过程中起到很大的作用。AOP的主要目的呢,是将横切的关注点与核心的分层形式的或者说是

功能组件的分离。下面我们来看看AOP中的如何实现方面编程。

面向方面编程中的方面并不是直接有编译器来实现,而是通过某种特殊的方式将方面合并到常规的源代码中,然后通过编译器编译的方式。我们知道一个方

面就是一个横切关注点,在实现方面的过程中,我们通常需要定义连接点与基于这个连接点上的通知来完成。下面我们来看看AOP的处理源代码的模型:

498)this.width=498;'' onmousewheel = ''javascript:return big(this)'' src="/uploadfile/201301/12/A4122030402.png" alt="" />

AOP一般都是有框架提供注入的功能,而这里的代码注入功能与我们在面向对象的依赖注入不同。这里的注

入是将方面的代码植入到常规代码片段中。

下面我们先来介绍AOP中

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号