面向復用的軟體設計模式(1)

2021-10-07 16:07:15 字數 1794 閱讀 8796

裝飾模式

外觀模式

復用可以產生可靠的軟體

復用產生標準化的軟體

乙個面向復用的設計面對改變更加靈活、已於修復並且易於增加新的功能

裝飾模式(decorator)

外觀模式(façade)

public

class

dogbarkonce

}

public

class

dog

public

class

barkdog

extends

dogbarkonce

implements

dog}

在這個例子中,為了讓現有的dogbarkonce適配dog介面,設計了barkdog介面卡,繼承自dogbarkonce類並且使用繼承的barkonce()方法實現介面中的bark()方法。最終實現了現有類的復用。

這裡使用了繼承(inheritance)來進行復用,也可以使用委託(delegation)來復用,關於繼承和委託的區別,可以參考模組級別的復用——繼承和委託。

下面也給出使用委託的**:

public

class

barkdog

implements

dog}

public

inte***ce

icecream

public

class

plainicecream

implements

icecream

}

public

abstract

class

toppingdecorator

implements

icecream

public

abstract

void

addtopping()

;}

幾個具體裝飾器(concretedecorator):

public

class

candytopping

extends

toppingdecorator

public

void

addtopping()

}

public

class

nutstopping

extends

toppingdecorator

public

class

peanuttopping

extends

toppingdecorator

客戶端**:

1 軟體設計模式概述

設計模式 這個術語最初並不是出現在軟體設計中,而是被用於建築領域的設計中。1977 年,美國著名建築大師 加利福尼亞大學伯克利分校環境結構中心主任克里斯托夫 亞歷山卓 christopher alexander 在他的著作 建築模式語言 城鎮 建築 構造 a pattern language tow...

1 軟體設計模式概述

設計模式 這個術語最初並不是出現在軟體設計中,而是被用於建築領域的設計中。1977 年,美國著名建築大師 加利福尼亞大學伯克利分校環境結構中心主任克里斯托夫 亞歷山卓 christopher alexander 在他的著作 建築模式語言 城鎮 建築 構造 a pattern language tow...

物件導向軟體設計 設計模式學習

工作也從開始c語言,轉向現在的c 表面上看得出,但實際中卻沒有把這種轉變深入到思想中,究其原因還是對物件導向的軟體設計不了解,有必要好好學習一下設計模式這個東東。本文就是設計模式學習第一篇 1物件導向軟體設計中的問題 2設計模式 設計模式 某種問題通用性的解決方案,可重複的模式。就像是一種模具,使用...