分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!
用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。
prototype原型模式是一種建立型設計模式,prototype模式允許乙個物件再建立另外乙個可定製的物件,
根本無需知道任何如何建立的細節,
工作原理是:通過將乙個原型物件傳給那個要發動建立的物件,這個要發動建立的物件通過請求原型物件拷貝它們自己來實施建立。
它主要面對的問題是:「某些結構複雜的物件」的建立工作;由於需求的變化,這些物件經常面臨著劇烈的變化,但是他們卻擁有比較穩定一致的介面。
客戶(client)角色:客戶端類向原型管理器提出建立物件的請求。
①抽象原型(prototype)角色:
這是乙個抽象角色,通常由乙個c#介面或抽象類實現。
②具體原型(concrete prototype)角色:
被複製的物件。此角色需要實現抽象的原型角色所要求的介面。
③原型管理器(prototype manager)角色:
建立具體原型類的物件,並記錄每乙個被建立的物件。
/// 原型抽象類 -=> 對應於抽象原型(prototype)角色
class
prototype; virtual ~prototype( ); virtual prototype* clone
( )const
= 0; // 拷貝函式,原型模式的精髓所在
virtual
void
show
( )const
= 0; // 顯示當前資訊
protected : char *m_name; // 名字};/// 原型類a -=> 對應於具體原型(concrete prototype)角色:
class
prototypea :
public prototype else } prototypea(const prototypea &prototype) // 實現深拷貝 virtual ~prototypea( ) // 虛析構函式 prototype* clone
( )const
// 拷貝函式,原型模式的精髓所在
void
show
( )const
// 顯示當前函式資訊
//protected :
// char *m_name;};/// 原型類b -=> 對應於具體原型(concrete prototype)角色:
class
prototypeb :
public prototype else } prototypeb(const prototypeb &prototype) // virtual ~prototypeb( ) // 虛析構函式 prototype* clone
( )const
// 拷貝函式,原型模式的精髓所在
// 獲取名字的函式
void
show
( )const
// 顯示當前函式資訊
//protected :
// int *m_no;};int
main
()給我老師的人工智慧教程打call!
C 設計模式2 原型模式Prototype
用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。prototype原型模式是一種建立型設計模式,prototype模式允許乙個物件再建立另外乙個可定製的物件,根本無需知道任何如何建立的細節,工作原理是 通過將乙個原型物件傳給那個要發動建立的物件,這個要發動建立的物件通過請求原型物件拷...
C 設計模式 原型模式
定義 用原型 prototype 例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。結構 理解 1.prototype 是原型基類,提供clone 純虛方法,它根據不同的派生類來轉殖不同的物件。2.concreteprototype 是原型具體類。實現clone 方法,轉殖自己,返回轉殖後的...
c 設計模式(原型模式)
good 從乙個物件再建立另外乙個可定製的物件,而無需知道任何建立的細節。並能提高建立的效能。說白了就copy技術,把乙個物件完整的copy出乙份。例 include include include using namespace std class prototype 抽象基類 prototype...