闪客动漫天地
欢迎 游客 , 注册 | 登录 | 会员 | 界面 | 简洁版本 | 在线 | 帮助
闪客动漫天地论坛

发表新主题 回复该主题
本主题被查看621次, 共1个帖子, 1页, 当前为第1页     选择页数: 1      跳转到第   上一主题   下一主题
标题: C#设计模式学习2——适配器模式
注册会员
UID: 309683
来自:
精华: 0
积分: 54
帖子: 54
注册: 2007-6-18 15:03:00
状态: 离线
威望: 0.00
金钱: 12.00 元
只看楼主 2007-06-18 15:18
C#设计模式学习2——适配器模式
适配器模式

在实际开发过程中,我们经常遇到这样的事情,客户需求在程序开发之后才能进行了解或者发生了变动,而开发工作中的接口已经定义完毕,并已经大规模投入编码。此时改动接口的定义会造成很多编码上重复性的修改工作,并进而有可能造成修改不完全而导致的语义错误或逻辑错误。语义错误尚可以在编译时发现,而一旦发生逻辑性的错误,后果将会非常严重,甚至导致系统的崩溃。此时就需要用到适配器模式的设计方法。
适配器模式主要应用于,当接口里定义的方法无法满足客户的需求,或者说接口里定义的方法的名称或者方法界面与客户需求有冲突的情况。

适配器模式的使用方法:
用一个类同时继承接口和客户需求的类,利用客户需求类中定义的方法和属性等,实现接口中的定义(主要利用了重载接口方法的办法)。

有定义好的接口如下(简单描叙):

1interface ICnt
2{
3 int GetCount();
4
5 void SetBegin(int nBgn);
6}
7
实际需要的类如此定义:

1public class PCnt
2{
3    PCnt(int i)
4    {
5    }
6
7    public int GetCount(int nBegin)
8    {
9      //实现方法略去
10    }
11
12    public int GetResult()
13    {
14      //实现方法略去
15    }
16}
17
此时,实际需要的类和已经定义的接口是有差别的,那么此时我们需要一个适配一下已定义的类和接口,我们先定义一个子类来继承已知类,然后实现接口的定义。


1public class SCnt
2{
3    private int m_Bgn;
4
5    SCnt(int i):base(i)
6    {
7    }
8
9    public int GetCount()
10    {
11    base.GetCount(this.m_Bgn);
12    }
13
14    public void SetBegin(int nBgn)
15    {
16      this.m_Bgn = nBgn;
17    }
18

--------------------[url]http://www.cnblogs.com/Showshare/archive/2007/06/17/786578.html[/url]
#1  
发表新主题 回复该主题
本主题被查看621次, 共1个帖子, 1页, 当前为第1页     选择页数: 1      跳转到第







现在的时间是 2008-08-30 07:29:27
沪ICP备05003105号

版权所有 闪客俱乐部  
         Powered by Discuz!NT 1.0.6666    Copyright © 2001-2008 Comsenz Inc.
Processed in 0.192 seconds