国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

設計模式---工廠模式

2019-11-11 04:23:24
字體:
來源:轉載
供稿:網友

通過一個YunSuanr 例子了解工廠模式

<?php
	//先做一個抽象的父類 YunSuan	abstract class YunSuan{		public $a;		public $b;		
		function Suan(){
			
		}}

	//造一個 Jia 方法繼承自父類
	class Jia extends YunSuan{
		//將父類的方法重寫
		function Suan(){
			return $this->a + $this->b;
	}
	//造一個 Jian 方法繼承自父類
	class Jian extends YunSuan{
		//將父類的方法重寫
		function Suan(){
			return $this->a - $this->b;
	}
	//造一個 Cheng 方法繼承自父類
	class Cheng extends YunSuan{
		//將父類的方法重寫
		function Suan(){
			return $this->a * $this->b;
	}
	//造一個 Chu 方法繼承自父類
	class Chu extends YunSuan{
		//將父類的方法重寫
		function Suan(){
			return $this->a / $this->b;
	}
	//造一個 GongChang 類,并在內部造一個靜態的成員方法
	class GongChang{
		static function ShengChan($f){
			switch($f){
				case "+":
					return new Jia();
					break;
				case "-":
					return new Jian();
					break;
				case "*":
					return new Cheng();
					break;
				case "/":
					return new Chu();
					break;
			}
				
		}
	}
	$r = GongChang::ShengChan("+");
	$r -> a = 10;
	$r -> b = 5;
	echo $r -> Suan();    //輸出15
面向對象設計原則

OOP基本上有6大原則,而實際上都是互補的,也就是說一些原則需要利用另一些原則來實現自己。6大原則如下:1) Open-Close PRinciple(OCP),開-閉原則,講的是設計要對擴展友好的支持,而對修改要嚴格限制簡言之就是對擴展開放,對修改關閉。這是最重要也是最為抽象的原則,基本上我們所說的Reusable Software既是基于此原則而開發的。其他的原則也是對它的實現提供了路徑。2) Liskov Substituition Principle(LSP),里氏代換原則,很嚴格的原則,規則是“子類必須能夠替換基類,否則不應當設計為其子類。”也就是說,子類只能去擴展基類,而不是隱藏或覆蓋基類。3) Dependence Inversion Principle(DIP),依賴倒換原則,“設計要依賴于抽象而不是具體化”。換句話說就是設計的時候我們要用抽象來思考,而不是一上來就開始劃分我需要哪些哪些類,因為這些是具體。這樣做有什么好處呢?人的思維本身實際上就是很抽象的,我們分析問題的時候不是一下子就考慮到細節,而是很抽象的將整個問題都構思出來,所以面向抽象設計是符合人的思維的。另外這個原則會很好的支持OCP,面向抽象的設計使我們能夠不必太多依賴于實現,這樣擴展就成為了可能,這個原則也是另一篇文章《Design by Contract》的基石。4) Interface Segregation Principle(ISP),接口隔離原則,“將大的接口(父類)打散成多個小接口(子類)”,這樣做的好處很明顯,我不知道有沒有必要再繼續描述了,為了節省篇幅,實際上我對這些原則只是做了一個小總結,如果有需要更深入了解的話推薦看《java與模式》,MS MVP的一本巨作!5) 單一職責:一個類的功能盡量單一,降低耦合6) Law of Demeter or Least Knowlegde Principle(LoD or LKP),迪米特法則或最少知識原則,這個原則首次在Demeter系統中得到正式運用,所以定義為迪米特法則。它講的是“一個對象應當盡可能少的去了解其他對象”。也就是又一個關于如何松耦合(Loosely-Coupled)的法則。好了,以上是6大原則(或法則)的介紹,對這些原則的深入研究正是如何得到設計模式的道路。在進行了深入了解后我們就可以開始看看設計模式了,設計模式正是對這些法則的應用,著名的設計模式有四人幫(Gang of Four,GoF)的23個模式,除此之外還有很多其他的一些著名模式,大家可以慢慢研究,如果能自己產出一兩個模式的話那就太好了,證明你也是高手了!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 河津市| 隆尧县| 锡林浩特市| 南陵县| 盘锦市| 茂名市| 安西县| 梁平县| 南安市| 专栏| 平利县| 宁德市| 巩义市| 彰化市| 吉安市| 沾化县| 晋宁县| 壶关县| 象山县| 津市市| 青川县| 晋城| 石楼县| 昔阳县| 六盘水市| 钟祥市| 新野县| 龙南县| 高碑店市| 崇阳县| 灵丘县| 神农架林区| 新宁县| 观塘区| 青浦区| 田东县| 玉林市| 鹰潭市| 枣强县| 五寨县| 且末县|