設計模式之簡單工廠,工廠方法模式

2021-09-29 09:45:47 字數 2386 閱讀 3311

qt暫時斷了,專案上暫時不用。這段時間回顧以前寫的**,不忍直視,現在的也好不**去,索性看看設計模式吧,就當練內功了~~啦啦。。。廢話不說上**。

c#**。

設計乙個簡單的計算器,只實現加減,其他的暫不考慮,

namespace my******factory

private double dnumbera = 0;

private double dnumberb = 0;

public double numbera

set}

public double numberb

set}

public virtual double returnresult()

}//加法類繼承計算類

class operationadd:myoperation

public override double returnresult()

}class operationsub:myoperation

public override double returnresult()

}//簡單工廠類

class operationfactory

return oper;}}

}

呼叫:我們無需提供具體的子類類名,只需要提供乙個字串即可得到相應的例項物件 

private void btnadd_click(object sender, eventargs e)

oper = operationfactory.creatroperator("+");

oper.numbera =convert.todouble(txtnumbera.text);

oper.numberb = convert.todouble(txtnumberb.text);

txtresult.text =convert.tostring(oper.returnresult());

}

簡單工廠模式:到底要實列化誰,將來會不會增加實列的化物件,應當考慮用乙個單獨的類來做這個創造實列的過程。

但是缺點也很明顯:如果需要在方法裡寫很多與物件建立有關的業務**,而且需要的建立的物件還不少的話,我們要在這個簡單工廠類裡編寫很多個方法,每個方法裡都得寫很多相應的業務**,而每次增加子類或者刪除子類物件的建立都需要開啟這簡單工廠類來進行修改。這會導致這個簡單工廠類很龐大臃腫、耦合性高,而且增加、刪除某個子類物件的建立都需要開啟簡單工廠類來進行修改**也違反了開-閉原則。

既然簡單工廠違反開—閉原則,那麼肯定有不違反的,於是工廠模式來了,還是直接上**,嗯,我一貫的原則,看寫**是程式設計師最直接的學習方式。

namespace my******factory

private double dnumbera = 0;

private double dnumberb = 0;

public double numbera

set}

public double numberb

set}

public virtual double returnresult()

}class operationadd : myoperation

public override double returnresult()

}class operationsub : myoperation

public override double returnresult()

}//上面的都沒變,這裡做出了改變,寫成工廠介面

inte***ce operationfactory

//實踐工廠方法介面

class operationsubfactory:operationfactory

}class operationaddfactory:operationfactory

}

}

//呼叫 

operationfactory factory = new operationsubfactory();//如果要改變方法,改這裡

myoperation opera = factory.creatroperator();

opera.numbera = convert.todouble(txtnumbera.text);

opera.numberb = convert.todouble(txtnumberb.text);

txtresult.text = convert.tostring(opera.returnresult());

工廠方法就是簡單工廠模式的進一步抽象和推廣。由於用了多型性,工廠模式保持了簡單工廠的有點,克服了它的缺點。但是由於每增加乙個產品,就需要增加乙個產品工廠的類,增加了額外的開發量。

設計模式之簡單工廠模式 工廠方法模式

簡單工廠模式並不屬於gof23個經典設計模式,但通常作為23個設計模式的基礎。因為在簡單工廠模式中用於建立例項的方法是static方法,所以它也被稱為static factory method pattern.定義 定義乙個工廠類,它可以根據引數的不同返回不同類的例項,被建立的例項通常都具有共同的父...

工廠設計模式之簡單工廠 工廠方法

1 工廠設計模式的作用 將建立者和呼叫者進行分離 我們經常是建立物件之後再呼叫 2 簡單工廠模式,乙個工廠生產很多物件 最常用 3 工廠方法 在簡單工廠的基礎之上更加細分,分為幾個工廠 1 定義電腦介面,依賴倒置原則,即面向介面程式設計 public inte ce computer 2 定義hp和...

設計模式 簡單工廠 工廠方法 抽象工廠方法模式

簡介 工廠方法模式分為 簡單工廠模式 工廠方法模式 抽象工廠方法模式 簡單工廠模式是屬於建立型模式,又叫做靜態工廠方法 static factory method 模式,但不屬於23種gof設計模式之一。簡單工廠模式是由乙個工廠物件決定建立出哪一種產品類的實 uml圖示例 public class ...