什麼叫簡單工廠模式?
簡單工廠模式又叫靜態工廠方法,專門定義一個類來負責創建其他類的實現,屬於類的創建型模式。
計算器實現簡單的工廠模式
<?php /** * 工廠類 */ class Factory { public static function create($operation) { switch($operation) { case "+": $result = new Add(); break; case "-": $result = new Sub(); break; case "*": $result = new Mul(); break; case "/": $result =new Div(); break; } return $result; } } /** * 運算類 */ abstract class Operation { protected $num1; protected $num2; public function set_num($num1,$num2) { $this->num1=$num1; $this->num2=$num2; } abstract function get_result(); } /** * 加法類 */ class Add extends Operation { public function get_result() { return $this->num1+$this->num2; } } /** * 減法類 */ class Sub extends Operation { public function get_result() { return $this->num1-$this->num2; } } /** * 乘法類 */ class Mul extends Operation { public function get_result() { return $this->num1*$this->num2; } } /** * 除法類 */ class Div extends Operation { public function get_result() { return $this->num1/$this->num2; } } $opear = Factory::create("+"); $opear->set_num(6,3); echo $opear->get_result(); echo "<br/>"; $opear = Factory::create("-"); $opear->set_num(6,3); echo $opear->get_result(); echo "<br/>"; $opear = Factory::create("*"); $opear->set_num(6,3); echo $opear->get_result(); echo "<br/>"; $opear = Factory::create("/"); $opear->set_num(6,3); echo $opear->get_result();
顯示結果:
9
3
18
2
一、重構背景 1.1、退款 京東秒送秒送退款有2套結構,代碼邏輯混亂; 其中秒送、天選部分售後單是和平生pop交互退款,部分是和售後中臺交互退款;並且兼容3套邏輯; 痛點:代碼繁重,缺乏合理性的設計,後續迭代開發以及維護成本高,同時增加
本文分享自華爲雲社區《代碼的安全檢視》,作者:Uncle_Tom。 1. 熵的故事 熵的概念最早起源於物理學,用於度量一個熱力學系統的無序程度。熱力學第二定律,又稱“熵增定律”,表明了在自然過程中,一個孤立的系統總是從最初的集中、有序的排
導讀 本文主要講解了MVEL表達式和責任鏈設計模式相結合一起的消息處理解決方案設計、解耦消息處理節點以及方便代碼維護擴展。通過“訂單拆單消息”的接入作爲具體實踐案例,簡要闡述了MVEL表達式和Apache Chain職責鏈設計模式應用場景。
· 前言 · 在國內,公網服務器與本地服務器的通信一直是個難題,本地服務器因爲IP是動態變化的,公網服務器沒辦法將請求發送給本地服務器。爲了解決這個問題,所以採用WebSocket協議替換Http協議。爲了實現請求等待,使用Gu
在這裏分享一下通過拖取 DataCube 代碼審計後發現的一些漏洞,包括前臺的文件上傳,信息泄露出賬號密碼,後臺的文件上傳。當然還有部分 SQL 注入漏洞,因爲 DataCube 採用的是 SQLite 的數據庫,所以SQL 注入相對來說顯
轉載自劉茫茫看山 問題背景 某天我們的租戶反饋數據庫連接缺少必要的驅動,我們通過日誌查看確實是缺少部分數據庫的驅動,因爲DolphinScheduler默認只帶了Oracle和MySQL的驅動,並且需要將pom文件中的test模式去掉纔可以
鴻蒙原生應用再新丁!新華社 入局鴻蒙 來自 #HarmonyOS# 微博5月27日消息 #鴻蒙千帆起#新華社客戶端完成鴻蒙原生應用核心版本開發,將實現不同使用場景下更加智能、精準、及時的要聞推送,以及主流價值的全場景覆蓋和高效傳播!與此同
記一次攻防演練中幸運的從若依弱口令到後臺getshell的過程和分析。 0x01 漏洞發現 首先,我會先把目標的二級域名拿去使用搜索引擎來搜索收集到包含這個目標二級域名的三級域名或者四級域名的網站。 這樣子可以快速的定位到你所要測試的漏洞
通過類之間的關係圖,讀懂spring boot原理 RequestBodyAdvice接口用於對Controller方法接收的請求體進行全局處理,可以在請求體被讀取之前或之後對請求體進行修改、包裝或添加一些額外的處理邏輯。下面是Req
鴻蒙原生應用再新丁!學習強國 入局鴻蒙 來自 #HarmonyOS# 微博5月23日消息 中央宣傳部宣傳輿情研究中心宣佈,將基於HarmonyOS NEXT鴻蒙星河版啓動“學習強國”App鴻蒙原生應用開發!“學習強國”App將爲鴻蒙生態帶
前言 在無線網絡技術不斷髮展的今天,Wi-Fi已經成爲了我們日常生活中不可或缺的一部分。無論是家庭娛樂、辦公還是在線遊戲,Wi-Fi都在提供着便捷的互聯網接入服務。然而,在安卓8.1後,爲了進一步延長安卓設備的待機時間。原生安卓(AO
鴻蒙原生應用再新丁!芒果TV 入局鴻蒙 來自 #HarmonyOS# 微博5月21日消息 深受年輕人喜愛的@芒果TV 宣佈完成鴻蒙原生應用Beta版開發🎉芒果TV獨家精品內容結合HarmonyOS NEXT創新能力,將爲用戶帶來更加便捷
我們已經學習了很多自動化的知識了,接下來讓我們看看在blog-auto-publishing-tools中是如何實現自動發送博文到知乎的。 前提條件 前提條件當然是先下載 blog-auto-publishing-tools這個博客自動發佈
雖然頭條現在非常強大,但是我還是不得不吐槽一下頭條的博客發佈,居然不支持markdown格式。 並且在某些瀏覽器上還會出現編輯頁面打不開的情況,讓我一度懷疑是我瀏覽器的問題。 不過,這都不重要,重要的是blog-auto-publishin
一、背景 上週小組有個需求上線牽扯9個應用(小組目前維護了26個服務,由於團隊系統業務屬性特徵基於高可用、高性能原則拆分,有些是合理的,有些不是很合理的),同時上週OpsReview的一個微服務濫用典範案例(Promise服務A調用服務B,