訪問者模式

2021-09-02 06:56:18 字數 1514 閱讀 2109

1. 訪問者模式

訪問者模式表示乙個作用於某物件結構中的各元素的操作. 它使開發者可以在不改變各元素的類的前提下定義作用於這些元素的新操作

2. 超市中購物的列子

public inte***ce goods

public class wine implements goods

public double computer(visitor visitor)

............

}public class television implements goods

public double computer(visitor visitor)

............

}

3. 設計乙個抽象的訪問者類

public inte***ce visitor

4. 設計乙個具體的訪問者類

public class visitorimpl implements vistor

public double computermoney(television television)

}

5. 購物車類

public class shoppingcart

public void remove(object object)

public list getlist()

private list list = new arraylist();

}

6. 計價器類

public class accountmachine

public double gettotal()}}

客戶端呼叫**

wine wine = new wine();

wine.setcount(10);

wine.setprice(20f);

television television = new television();

television.setcount(12);

television.setprice(1000f);

shoppingcart shoppingcart = new shoppingcart();

shoppingcart.add(wine);

shoppingcart.add(television);

accountmachien accountmachine = new accountmachine();

accountmachine.account(shoppingcart.getlist());

account.gettotal();

訪問者模式

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

訪問者模式

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

訪問者模式

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