代理設計模式:Proxy Pattern。在真實對象與客戶端對象之間加入一層中階層,由這一 層中介來完成對真實對象的引用。 優點:可以讓程式的業務邏輯更加清晰。客戶端對象不需要瞭解真實對象的細節,所有 的調用均由代理來完成。擴展性更高。代理保護了真實對象。 常用的場景: 1. 遠程代理:為一個位於不 ...
代理設計模式:Proxy Pattern。在真實對象與客戶端對象之間加入一層中階層,由這一
層中介來完成對真實對象的引用。
優點:可以讓程式的業務邏輯更加清晰。客戶端對象不需要瞭解真實對象的細節,所有
的調用均由代理來完成。擴展性更高。代理保護了真實對象。
常用的場景:
1. 遠程代理:為一個位於不同的位置的對象提供一個本地對象的代理。
2. 虛擬代理:當需要創建一個開銷較大的對象時,先創建一個較小的對象,當真的需要使用這個對象時再真正的創建它。
3. 保護代理:當需要對一個對象根據不同的許可權級別來進行控制的時候使用。
4. 智能指針:如java中的智能指針。
5. Copy-on-Write:虛擬代理的一種具體實現,延遲複製操作,只有當用戶真正需要使用的時候再進行操作。這樣可以減少消耗。
以下是一個實例,問題描述:
代碼如下
class test
{
public static void main(String args[])
{
supermarket s=new supermarket();
user u=new user(s);
u.show();
}
}
class goods
{
String name="goods";
}
class supermarket extends goods
{
factory goo;
supermarket()
{
goo=new factory();
}
void show()
{
goo.show();
}
}
class factory extends goods
{
void show()
{
System.out.println("factory");
}
}
class user
{
supermarket goo;
user(supermarket g)
{
goo=g;
}
void show()
{
goo.show();
}
}
2016-8-1
20:24