php23設計模式,php常用的設計模式有哪些

本文目錄一覽:

php中有哪些設計模式,舉例說明應用場景

PHP 一般有五種常見的設計模式

工廠模式

它具有創建對象的某些方法。可以使用工廠類創建對象,而不直接使用 new。

例如:

?php

interface IUser

{

function getName();

}

class User implements IUser

{

public function __construct( $id ) { }

public function getName()

{

return “Jack”;

}

}

class UserFactory

{

public static function Create( $id )

{

return new User( $id );

}

}

$uo = UserFactory::Create( 1 );

echo( $uo-getName().”\n” );

?

另外四種是:觀察者模式,單元素模式,命令鏈模式,策略模式。例子可以百度一搜。

PHP有幾種設計模式

5種啊工廠模式,單元素模式,觀察者模式,命令鏈模式,策略模式,希望能幫到你,我還要在後盾網上課學習呢,有不會的可以問我。(´ω`*)

怎麼理解php中的設計模式

1、單例模式:PHP中的對象生存期間是從該腳本開始一直到該腳本結束為止,因此PHP的單例模式只是在一個頁面中(這裡可能包含很多其他頁面,不是狹義的單頁面)多次用到該對象時才會起作用,多次用到時不去重複的new對象(多個人做一個項目時,難免會碰到一次請求中多次實例一個對象的情況),將不會耗費不必要的資源(數據控連接操做效果很明顯),還有一點就是可以保證整個腳本中都是同一個對象,這種模式是怎麼實現的呢,他的實現有幾個要注意的點:

a. 首先就是要將__construct()方法定義為私有方法,這樣就不能通過new來得到一個新的實例了,單例模式不能在外部進行實例化,這能字自身內部進行實例化;

你熟悉的設計模式有哪些?寫出單例模式的實現代碼

23個設計模式:

根據目的設計模式可以分為創造模式,結構模式和行為模式,創建模式用於處理對象的創建。結構模式用於處理類或對象的組合。

行為模式用於描述類或對象如何交互以及如何分配職責,創建模式用於處理對象的創建。主要包括以下五種設計模式:

工廠方法模式()

抽象工廠模式(AbstractFactoryPattern)

建造者模式(BuilderPattern)

原型模式(PrototypePattern)

單例模式(SingletonPattern)

結構模式用於處理類或對象的組合,包括以下七個設計模式:

適配器模式(AdapterPattern)

橋接模式(BridgePattern)

組合模式(CompositePattern)

裝飾者模式(DecoratorPattern)

外觀模式(FacadePattern)

享元模式(FlyweightPattern)

代理模式(ProxyPattern)

行為模式描述類或對象如何交互以及它們如何分配職責。它由以下11種設計模式組成:

責任鏈模式(Chain的ResponsibilityPattern)

命令模式(CommandPattern)

解釋器模式(InterpreterPattern)

迭代器模式(IteratorPattern)

中介者模式(MediatorPattern)

備忘錄模式(MementoPattern)

觀察者模式(ObserverPattern)

狀態模式(StatePattern)

策略模式(StrategyPattern)

模板方法模式(TemplateMethodPattern)

訪問者模式(VisitorPattern)

單例模式實現1:

公共類Singleton{

類共享實例對象

私有靜態單例;單例=零;

//私有構造函數

私有Singleton(){

系統。出去了。這是單例!!);

//獲取單例方法

公共同步靜態單例getInstance(){

//確定共享對象是否為空,如何空一個新對象

If(singleton==null){

singleton=newsingleton();

返回單例。

單例模式實現2:

公共類Singleton{

類共享實例對象實例化

PrivatestaticSingletonSingleton=newSingleton();

//私有構造函數

私有Singleton(){

系統:出去了,這是單例!!);

//獲取單例方法

公共靜態單例getInstance(){

直接返回共享對象

返回單例。

擴展資料:

注意事項:

設計模式主要分三個類型:創建型和行為型。

Singleton:確保一個類只有一個實例,並為其提供一個全局訪問點

AbstractFactory:提供一個介面,用於創建一系列相關或相互依賴的對象,而無需指定它們的具體類。

FactoryMethod:定義一個用於創建對象的介面,並讓子類決定實例化哪個類。工廠方法將類的實例化延遲到子類。

Builder:將複雜對象的構造與其表示分離,使相同的構造過程可以創建不同的表示。

Prototype:指定要使用Prototype實例創建的對象的類型,並複製該原型來創建一個新對象。

Composite:將對象組合成樹狀結構,以表示整體各部分之間的關係。組合使用戶一致地使用單個對象和組合對象。

Facade:為子系統fa中的一組介面提供一致的介面。Ade提供了一個高級介面,使子系統更易於使用。

Proxy:為其他對象提供一個代理,以控制對該對象的訪問

Adapter:將一個介面類轉換為客戶想要的另一個介面類。適配器模式使那些由於介面不兼容而無法一起工作的類一起工作。

Decrator:式比子類化更靈活,可以為對象動態添加一些額外的職責。

Bridge:模式將抽象部分與其實現部分分離,以便它們可以獨立地更改。

Flyweight:享元模式

php中常見的幾種設計模式

狀態state模式是GOF23種模式中的一種,和命令模式一樣,也是一種行為模式。狀態模式和命令模式相當像,一樣是「介面—實現類」這種模式的應用,是面向介面編程原則的體現。

狀態模式屬於對象創建型模式,其意圖是允許一個對象在其內部狀態改變時改變它的行為,對象看起來似乎修改了他的類。比較常見的例子是在一個表示網路連接的類TCPConnection,一個TCPConnection對象的狀態處於若干不同的狀態之一:連接已經建立(Established),正在監聽,連接已經關閉(closed)。當一個TCPConnection對象收到其他對象的請求時,他根據自身的狀態作出不同的反應。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/246301.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 13:14
下一篇 2024-12-12 13:14

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Python 常用資料庫有哪些?

    在Python編程中,資料庫是不可或缺的一部分。隨著互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的資料庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • Python通配符有哪些

    Python通配符是一種表示字元串中模糊匹配的有效工具,用於匹配與具有特定模式匹配的字元串。Python中主要的通配符有:*,?,[]和{}。 一、星號通配符 * 在Python中…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 註冊表取證工具有哪些

    註冊表取證是數字取證的重要分支,主要是獲取計算機系統中的註冊表信息,進而分析痕迹,獲取重要證據。本文將以註冊表取證工具為中心,從多個方面進行詳細闡述。 一、註冊表取證工具概述 註冊…

    編程 2025-04-29
  • Python函數類型有哪些

    本文將從以下幾個方面詳細闡述Python函數類型。 一、內置函數 Python的內置函數是指在Python編程語言中提供的可以直接使用的函數,不需要通過導入模塊等方式引入。 部分常…

    編程 2025-04-29
  • Python序列的常用操作

    Python序列是程序中的重要工具,在數據分析、機器學習、圖像處理等很多領域都有廣泛的應用。Python序列分為三種:列表(list)、元組(tuple)和字元串(string)。…

    編程 2025-04-28
  • Python程序變數名有哪些

    Python是一種高級、面向對象、解釋型編程語言,它因為其簡潔明了的語法和廣泛的應用領域而被廣泛使用。在Python中,變數名是關鍵的標識符,它們用於訪問存儲在內存中的值。本文將介…

    編程 2025-04-28
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • 手機安全模式怎麼解除?

    安全模式是一種手機自身的保護模式,它會禁用第三方應用程序並使用僅限基本系統功能。但有時候,安全模式會使你無法使用手機上的一些重要功能。如果你想解除手機安全模式,可以嘗試以下方法: …

    編程 2025-04-28

發表回復

登錄後才能評論