設計模式 簡單工廠模式

2021-09-07 03:09:13 字數 1249 閱讀 3376

原本自己開發了各種web、移動應用,還開源了幾個專案,覺得自己能力不錯了,可最近在研究android原始碼的時候才發現,自己某些方面的缺失。而這種缺失就是設計模式。起初對於各種設計模式都有過了解,但也只是略知大概的概念皮毛,所以在看原始碼的時候發現,就像是在看天書一般,令人難受,所以現在打算重頭對各種設計模式整理一遍,當給自己敲個警鐘---路還很長,自己還不夠強。

現在先從簡單工廠模式入手,簡單工廠模式一般來說是學習設計模式的第一種模式,難度就跟它的名字一樣,簡單。雖然簡單工廠模式看起來學起來很簡單,但是其中卻是對物件導向程式設計很好的理解和詮釋。物件導向程式設計的三個特性是封裝、繼承和多型,接下來就來看看乙個簡單工廠模式是怎麼運用到這三大特性的。

直接貼原始碼未免有些不妥,所以我們先丟擲乙個問題,仔細思考一下這個問題:如果讓你實現乙個計算器程式,你會怎麼設計?

很多人會說很簡單,不就是使用if-else-if或者switch語句麼,稍加判斷就可以實現各種你想要的運算符號。但是仔細思考一下,如果乙個初始程式通過這種方式已經實現「+ - * /」,那當我需要再新增乙個根號需要怎麼做,有人說很簡單,只要多一條分支就可以解決,這又不是難事兒。說的沒錯,多加一條分支確實不是難事兒,但是你每次修改都需要給你初始程式原始碼,那當這個初始原始碼屬於機密時,你是否就束手無策了?

所以這個時候往繼承這個方向上理解,你就會知道明白奧秘了。

首先是定義乙個父類,這個父類就是上面我們提到的機密,我們無法接觸到的,即只知道這個類內部的構造即可,無法修改它。

package text;

public class operation

public void setnuma(double numa)

public double getnumb()

public void setnumb(double numb)

public double getresult()

}

接下來實現我們需要增加的子類,這個子類就是我們自己隨時可以新增的,+ - * /  根號,隨時都可以新增。

package text;

public class operationadd extends operation

}

仔接下來,為了保證耦合度,就使用工廠類

package text;

public class operationfactory

return operation;

}}

實現很簡單,重在理解。

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

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

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

當邏輯較為簡單時,可以直接建立對應的類。如下 include using namespace std class class banana class pear intmain 通過此 可以發現,使用者直接與客戶接觸,違背了dip 依賴倒轉 原則,過於麻煩,所以引出簡單工廠模式。include us...

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

請用任意一種物件導向語言實現計算器控制台程式,要求輸入兩個數和運算符號,得到結果。operation運算類 public class operation set public double numberb set public virtual double getresult 加減乘除類 using...