色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

系統架構技能之設計模式—裝飾模式

  一、上篇回顧

  通過上篇的簡單描述,我們知道了橋接模式主要是為了解決,一個對象的多個維度的變化因素的變化太快,難以控制的問題,我們通過將每個維度的變化因素進行抽象, 然后我們的對象只要依賴于抽象即可,具體的實現調用我們不關心,通過對象組合的方式,我們就能組合出我們想要的對象。無疑這是一種非常靈活的也是滿足設計模式的原則的,抽象和實現分離,使他們各自發生變化都不受對方的影響。而且我們也講述了,使用橋接模式的幾個典型的場景,現在我們的實際項目中就有這樣的問題,我也是在項目的使用過程中加深對橋接模式的理解的,橋接模式為系統在多個維度的變化的適應性方面提供了很好的參考,特別適合底層框架的開發過程中使用,可以適應不同變化因素的改變。上篇橋接模式放出后,我也得到了不少朋友的反饋,很感謝大家,這里特別的感謝一個名叫“蕭蕭”的朋友,他指出了我在文章中給出的例子有些不妥之處,我本篇將會對上篇中給出的例子,從給出符合橋接模式的實現,這里對大家say sorry !

上篇中的實現:
public interface IORM
{
ISave Save
{
get;
set;
}

IDelete Delete
{
get;
set;
}

ICreate Create
{
get;
set;
}

ICache Cache
{
get;
set;
}

IQuery Query
{
get;
set;
}

void Test();

}
我們在這個接口的定義中并沒有體現橋接模式中的變化因素的抽象的概念,我們修改為如下形式:
public interface IORM
{
ISave Save
{
get;
set;
}

IDelete Delete
{
get;
set;
}

ICreate Create
{
get;
set;
}

void Test();

}
public interface ICache
{
object Cache(object o);
}

public interface IQuery
{
object Query(string condition);
}
具體的緩存服務與查詢服務的實現:
public class Cache : ICache
{
public object Cache(object o){
return o;
}
}
public class Query: IQuery
{
public object Query(string condition){
return GetList(condition);
}
}
具體的ORM實現代碼如下:
public class ORM : IORM
{

private IQuery query=new Query();

private ICache cache=new Cache();

public ORM(IQuery query,ICache cache)

{

this.query=query;

this.cache=cache;

}
public ISave Save
{
get
{
throw new NotImplementedException();
}
set
{
throw new NotImplementedException();
}
}

public IDelete Delete
{
get
{
throw new NotImplementedException();
}
set
{
throw new NotImplementedException();
}
}

public ICreate Create
{
get
{
throw new NotImplementedException();
}
set
{
throw new NotImplementedException();
}
}

public void Test()
{
///測試緩存對象!
this.cache.Cache(new object());
}
}

it知識庫系統架構技能之設計模式—裝飾模式,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 山丹县| 恩施市| 建瓯市| 黑山县| 广宗县| 福建省| 沂源县| 东阳市| 墨脱县| 神农架林区| 通渭县| 屯门区| 阿鲁科尔沁旗| 车致| 广州市| 盈江县| 庄河市| 吉安县| 翁源县| 莫力| 嵩明县| 石柱| 尉犁县| 罗平县| 禹州市| 武陟县| 扎兰屯市| 灵宝市| 重庆市| 石门县| 安图县| 福泉市| 洞口县| 扶风县| 嵊州市| 高阳县| 鄂托克前旗| 黄山市| 衡南县| 富裕县| 板桥市|