代理模式
① 代理的模式有幾種
一、代理商模式按數量分可分為三類:
1.獨家代理,
2.少頭博弈代理(2-3家),
3.多頭回博弈代理(3家以上)答。
選擇獨家代理或是非獨家代理,是中國企業首先要思考的。
二、按銷售商對代理商的滲透程度可分為兩類:
滲透類代理,獨立代理(非獨家代理)。
三、按代理商的級數可分為:單級代理商體制,多級代理商體制。
② 代理模式的簡介
即Proxy Pattern,23種常用的面向對象軟體的設計模式之一。(設計模式的說法源自《設計模式》一書,原名《Design Patterns: Elements of Reusable Object-Oriented Software》。1995年出版,出版社:Addison Wesly Longman.Inc。該書提出了23種基本設計模式,第一次將設計模式提升到理論高度,並將之規范化。)
代理模式的定義:為其他對象提供一種代理以控制對這個對象的訪問。在某些情況下,一個對象不適合或者不能直接引用另一個對象,而代理對象可以在客戶端和目標對象之間起到中介的作用。
③ 代理模式和中介者模式有什麼不同
代理模式提供代理被訪問對象的對外介面,屬於1V多;
中介者模式是提供統一互交信息的介面,屬於多對多;
回答的簡要,不喜勿噴,謝謝!
④ 代理銷售模式
好處:
1、不用投資產品在生產環節上的各項費用;
2、容易與其他代理商一起形成規模效應,使生產廠家降低經營成本,直接體現在降低產品價格上;
3、享受到廠家的各種資源,如品牌,培訓,制度,設備等;
4、市場風險減低,最直接就是降低產品存量風險;
5、退出容易。
缺點:
1、廠家有品牌的知識產權,最終體現在對下游的控制主動性;
2、信息不對稱,廠家的經營信息和經營規劃代理商完全不知道,但代理商的經營信息廠家完全掌握。這樣廠家可以隨時根據代理商的經營信息調整經營策略,規避風險或者轉嫁風險;
3、代理商既得利益不能保障,雖然國家規定產品質量問題由廠家承擔,但如果廠家失去承擔責任的能力或者逃避承擔責任,那麼作為流通環節最上游的代理商就可能會承擔法律和經濟責任。
4、資金風險,這個與信息不對稱有一定關聯,不過即使知道廠家經營信息,但代理商在合作期間要為廠家墊付一定的在途資金,這些資金的風險完全由代理商承擔。
好了,我的水平大概就只提供到這些了,老闆你就琢磨一下吧。
⑤ 什麼是代理模式
代理產品唄
⑥ 適配器模式和代理模式的區別
1.簡介
適配器模式:適配器模式(英語:adapter pattern)有時候也稱包裝樣式或者包裝。將一個類的介面轉接成用戶所期待的。一個適配使得因介面不兼容而不能在一起工作的類工作在一起,做法是將類別自己的介麵包裹在一個已存在的類中。wiki
代理模式:代理模式的定義:為其他對象提供一種代理以控制對這個對象的訪問。在某些情況下,一個對象不適合或者不能直接引用另一個對象,而代理對象可以在客戶端和目標對象之間起到中介的作用。wiki
2.困惑
設計模式總是通過增加層來進行解耦合,提高擴展性,但是如果我們沒法從在這個抽象維度中看出,這個層真正的抽象含義,那麼我們很難搞懂一個模式真正的內涵?我就有這個疑問,這兩個東東都是增加了一層,但是這一層有什麼區別?
3.理解
很明顯,適配器模式是因為新舊介面不一致導致出現了客戶端無法得到滿足的問題,但是,由於舊的介面是不能被完全重構掉的,因為我們還想使用實現了這個介面的一些服務。那麼為了使用以前實現舊介面的服務,我們就應該把新的介面轉換成舊介面;實現這個轉換的類就是抽象意義的轉換器;
就比如在java中早期的枚舉介面是Enumeration而後定義的枚舉介面是Iterator;有很多舊的類實現了enumeration介面 暴露出了一些服務,但是這些服務我們現在想通過傳入Iterator介面而不是Enumeration介面來調用,這時就需要一個適配器,那麼client就能用這個服務了(服務端只想用Iterator或者只知道這個介面);
相比於適配器的應用場景,代理就不一樣了,雖然代理也同樣是增加了一層,但是,代理提供的介面和原本的介面是一樣的,代理模式的作用是不把實現直接暴露給client,而是通過代理這個層,代理能夠做一些處理;
感悟:設計模式學習應該結合場景,脫離了場景就很難明白這些東西,這些層這么寫都是在干什麼;其實不管是面向對象還是設計模式,最重要的是抽象,理解了它在抽象一個什麼場景你才能理解本質;
⑦ 代理模式的實現方式
下面我舉個例子來說明這一切:
場景:業務類CompanyManager在調用Save方法的時候需要調用SecurityManager類判斷許可權是否足夠
第一種實現方式,我們通常會這樣做:直接在CompanyManager類中調用ISecurityManager介面的IsPass方法判斷許可權。
public class SimpleCompanyManager : ICompanyManager
{
可通過外部注入的屬性#region 可通過外部注入的屬性
public string UserName { get; set; }
public CompanyDao Dao { get; set; }
#endregion
public void Save()
{
//判斷許可權
ISecurityManager security = new SecurityManager();
if (security.IsPass(UserName))
{
//執行業務方法
//.
//調用DAO層方法
Dao.Save();
}
else
{
//執行其它業務方法
Console.WriteLine("您沒有該許可權");
}
}
}
這樣CompanyManager類與ISecurityManager或SecurityManager會發生業務性耦合。聰明的朋友會發現在GOF(設計模式)中有一種模式(代理模式)可以解除這種耦合。
代理模式(Proxy Pattern):什麼是代理模式?是給某一個對象提供一個代理對象,並由代理對象控制對源對象的引用。代理就是一個人或一個機構代表另一個人或者一個機構採取行動。某些情況下,客戶不想或者不能夠直接引用一個對象,代理對象可以在客戶和目標對象直接起到中介的作用。客戶端分辨不出代理主題對象與真實主題對象。代理模式可以並不知道真正的被代理對象,而僅僅持有一個被代理對象的介面,這時候代理對象不能夠創建被代理對象,被代理對象必須有系統的其他角色代為創建並傳入
CompanyManager
public class CompanyManager : ICompanyManager
{
可通過外部注入的屬性#region 可通過外部注入的屬性
public string UserName { get; set; }
public CompanyDao Dao { get; set; }
#endregion
public void Save()
{
//執行業務方法
//.
//調用DAO層方法
Dao.Save();
}
}
CompanyProxyManager
public class CompanyProxyManager : ICompanyManager
{
public string UserName { get; set; }
private ICompanyManager target = new CompanyManager();
public void Save()
{
//判斷許可權
ISecurityManager security = new SecurityManager();
if (security.IsPass(UserName))
{
//調用目標對象Save方法
target.Save();
}
else
{
Console.WriteLine("您沒有該許可權");
}
}
}
這樣,CompanyManager類就不必與判斷許可權的類SecurityManager耦合
代理模式作用就是接觸業務耦合,保證業務的獨立性
摘自 劉冬的博客園
⑧ 本人做了一項產品,以代理模式銷售,分為5個等級的代理,分別為全國
所謂業績指的什麼呢?拉多少人?這不就是傳銷嘛……
⑨ 裝飾器模式 和 代理模式的不同
裝飾模式:以對客戶端透明的方式擴展對象的功能,是繼承關系的一個替代方案;
代理模式:給一個對象提供一個代理對象,並有代理對象來控制對原有對象的引用;
裝飾模式應該為所裝飾的對象增強功能;代理模式對代理的對象施加控制,並不提供對象本身的增強功能
二者的實現機制確實是一樣的,可以看到他們的實例代碼重復是很多的。但就語義上說,這兩者的功能是相反的,模式的一個重要作用是簡化其他程序員對你程序的理解,
你在一個地方寫裝飾,大家就知道這是在增加功能,你寫代理,大家就知道是在限制,
雖然代碼很可能相同,但如果你都叫他們裝飾,別人會很迷惑的。