設計模式 簡單類工廠

2021-08-07 06:14:35 字數 1574 閱讀 4074

在程式設計學習過程中,開始是隨性的寫,覺得只要能實現自己想要的功能,便可完事。當需求發生改變時,樂此不彼地修改凌亂的**,沒有領悟到程式設計這門藝術,只是乙個**搬運工。慢慢去閱讀一些書籍,發現自己知道的東西太少,思想過於簡單,考慮問題比較單一。希望能通過每天的學習去充實自己,並將這些點滴記錄下來。

今天就開始設計模式的學習,設計模式是一種解決問題的方式,針對不同的場景使用一種或者多種設計模式解決問題。首先,介紹一下比較簡單的設計模式類工廠,從表面意思來看,生產類例項的工廠。就好比乙個鞋廠,可以生產各式各樣的鞋子,具體類實現如下:

鞋基類:

#pragma once

class cshoe

;#pragma once

#include "shoe.h"

class cnikeshoe :

public cshoe

;#include "shoe.h"

cshoe::cshoe()

cshoe::~cshoe()

const

char* cshoe::getbrand()

阿迪達斯鞋類

#pragma once

#include "shoe.h"

class cadidasshoe :

public cshoe

;#include "adidasshoe.h"

cadidasshoe::cadidasshoe()

cadidasshoe::~cadidasshoe()

nike鞋型別

#pragma once

#include "shoe.h"

class cnikeshoe :

public cshoe

;#include "nikeshoe.h"

cnikeshoe::cnikeshoe()

cnikeshoe::~cnikeshoe()

鞋工廠類

#pragma once

#include "shoe.h"

class cshoefactory

;#include "shoefactory.h"

#include "nikeshoe.h"

#include "adidasshoe.h"

cshoefactory::cshoefactory()

cshoefactory::~cshoefactory()

cshoe* cshoefactory::createshoe(int itype)

return pshope;}呼叫

#include

#include "shoefactory.h"

using namespace std;

int main(int argc, char** argv)

pshoe = pshoefactory->createshoe(1);

if (pshoe)

cin.get();

return

0;}

此模式結構簡單,但每次擴充套件新型別需要修改工廠類,違背了軟體設計的開發-封閉原則,一般用於教簡單的程式。

設計模式 工廠模式(簡單工廠)

一 簡單工廠 定義 簡單工廠模式 factory pattern 屬於類的創新型模式,又叫靜態工廠方法模式 static factorymethod pattern 是通過專門定義乙個類來負責建立其他類的例項,被建立的例項通常都具有共同的父類。特點 工廠類直接實現,乙個產品介面,乙個工廠類可以產生多...

類建立型設計模式 簡單工廠模式

本文章根據劉偉 sunny 的設計模式一書記錄的筆記,感謝作者的知識分享。工廠模式是最常用的一類建立型設計模式,通常我們所說的工廠模式是指工廠方法模式,它也是使用頻率最高的工廠模式。本章將要學習的簡單工廠模式是工廠方法模式的 小弟 它不屬於gof 23種設計模式,但在軟體開發中應用也較為頻繁,通常將...

簡單工廠設計模式與工廠設計模式

工廠設計模式的目的 降低呼叫者和實現者之間的耦合度。當需求發生變化 增加或改變 時,不改變原有 的結構。1.簡單工廠設計模式 優點 降低了呼叫者和實現者之間的耦合度。當引入乙個新的實現型別時,只需要增加乙個實現類,然後修改工廠類即可。缺點 只適用於層次結構較為簡單的情況。如果可能的實現型別很多,工廠...