tag 标签: 学习3

相关博文
  • 热度 16
    2012-9-21 11:41
    1396 次阅读|
    0 个评论
      外观模式     Facade 2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31. Subsystemclasse* 33.34.35.36.37.//// 38.39.40.41.42.43.44.////// 45.46.47.48.49.50.51.////// 52.53. Test 55.56.57.58.59.60.61.62.63.64.65.////////// 66.67.68.69.70.71. resu*t 73.74.75.76.77.78.79.80.///////         fly1.action(1);                 Flyweight fly* = FlyweightFactory.getF*yweight("a");         System.out.println(fly1 == fly2);                 Flyweight fl*3 = FlyweightFactory.getFlywei*ht("b");         fly3.action(2);                 Flyweight fly4 = Flyweigh*Factory.getF*yweight("c");         fly4.action(3);                 Flyweigh* fly5 = FlyweightFactory.getFlyweight("d");         fly4.action(4);                 System.out.println(FlyweightFactory.getSize())*     } } result 参数值: 1 true 参数值: 2 *数值: 3 参数值: 4 4   11.代理模式:    引用普遍的解释(个人觉得这个模式还是很有用的,这种解释也很到位):为其他对象提供一种代理以控制对这个对象的访问。    然后贴上摘自网络的这种模式的适用场合:     1.远程代理(RemoteProxy)为一个对象在不同的地址空间提供局部代表。     2.虚*理(VirtualProxy)根据需*创建开销很大的对象。     3.保护代理(ProtectionProxy)控制对原始对象的访问。     4.智能指引(SmartReference)取代了简单的指针,它在访问对象时执行一些附加操作。   这个代理可以是一种引用,这个引用时的用户可以对于这个对象作出想要的操作。在代理这种模式下,其实还是有点像是对要代理的对象做一个继承,然后进行局部的改变。 例子代码:   Proxy public class ProxyObject implements Object {     Objec* obj;         public ProxyObject() {         System.out.println("这是代理类");         o*j = new ObjectImpl();     }         public void ac*ion() {         System.out.p*intln("代理开始");         obj.action*);         System.out.println(*代理结束");     } } Subject public interface Obje*t {     void action(); } RealSubject public class ObjectImpl implements Object {     pu*lic void action() {         System.out.println("========");         System.out.println("========");         System.out.pr*ntln("这是被代理的类");         System.out.println("========");         System.out.println("========");     } } Test public class Test {     publi* static void main() {         Object ob* = new ProxyObject();         obj.action();     * } result 这是代理类 代理开始 ======== =*====== 这是被代理的类 ======== ======*= 代理结束 /////////////////// ///////////////////// /////////////////////////////////////////////////////////////   /////////////////////////////////////////////////////////////////////////////////////////////////////