訪問者模式

2021-10-09 20:45:53 字數 1339 閱讀 1796

<?php

/** * 訪問者雙要素

* 1.元素

* 2.訪問者

* 元素負責儲存資料,提供介面訪問

* 訪問者通過元素暴露的介面獲取資訊

*/abstract

class

element

}inte***ce

visitor

/** * 以看電影為例子

*/class

xyyextends

element

class

bxjg

extends

element

class

jfextends

element

class

movie

public

function

accept

(visitor $visitor)}

}//小孩

class

child

implements

visitor}}

//青年

class

young

implements

visitor}}

//老年

class

oldimplements

visitor}}

/** * 訪問者模式優點:

* 1.容易增加訪問者,完全符合開放閉合

* 2.將有關元素物件的訪問集中到訪問者中

* 缺點:

* 1.不容易增加元素,增加元素需要修改所有訪問者

* 2.破壞封裝,元素物件將自身暴露給訪問者(visit($this))

*///建立電影

$movie

=new

movie()

;$movie

->

add(

newxyy()

);$movie

->

add(

newbxjg()

);$movie

->

add(

newjf()

);//兒童走進電影院

$movie

->

accept

(new

child()

);//少年走進電影院

$movie

->

accept

(new

young()

);//老年人進入電影院

$movie

->

accept

(new

old())

;

訪問者模式

訪問者模式 visitor pattern 訪問者模式是物件的行為模式。訪問者模式的目的是封裝一些施加於某種資料結構元素之上的操作。一旦這些操作需要修改的話,接受這個操作的資料結構則可以保持不變。一 問題 集合是大多數的系統都要處理的一種容器物件,它儲存了對其它物件的引用。一般情況下,在集合上採取的...

訪問者模式

行為模式中的訪問者模式 訪問者模式是物件的行為模式。訪問者模式的目的是封裝一些施加於某種資料結構元素之上的操作,一旦這些操作需要修改的話,接受這個操作的資料結構則可以保持不變。動機 類層次結構中可能經常由於引入新的操作,從而將型別變得脆弱。在軟體構建過程中,由於需求的改變,某些類層次結構中常常需要增...

訪問者模式

1.說明 namespace visitorspattern 象棋類 public abstract class chess public class redchess chess public class blackchess chess 在贏的情況下的狀態 public class win ac...