ÈçºÎʹÓÃProxyģʽ¼°JavaÄÚ½¨µÄ¶¯Ì¬´úÀí»úÖÆ
1.Proxy
ģʽ
´úÀíģʽ֧³Ö½«Ä³Ð©²Ù×÷´Óʵ¼ÊµÄ¶ÔÏóÖзÖÀë³öÀ´£¬Í¨¹ýËüµÄ´úÀíÀàÌṩ´¦Àí¡£ÕâÑù±ãÓÚÐ޸ĺ͹ÜÀíÕâЩÌض¨µÄ²Ù×÷¡£
ÏÂÃæʾÀýÒ»¸ö´úÀíģʽµÄʵÏÖ¡£
<<interface>>Subject.java
package
com.zj.proxy;
public
interface
Subject {
void
operation1();
void
operation2(String arg);
}
ÏÖʵÀà
RealSubject.java
package
com.zj.proxy;
public
class
RealSubject
implements
Subject {
public
void
operation1() {
System.
out
.println(
"Realer do operation1"
);
}
public
void
operation2(String arg) {
System.
out
.println(
"Realer do operation2 with "
+ arg);
}
}
´úÀíÀà
ProxySubject.java
package
com.zj.proxy;
public
class
ProxySubject
implements
Subject {
private
Subject
proxied
;
//
±»´úÀí¶ÔÏó
public
ProxySubject(Subject
proxied) {
this
.
proxied
= proxied;
}
public
void
operation1() {
System.
out
.println(
"Proxyer do operation1"
);
proxied
.operation1();
}
public
void
operation2(String arg) {
System.
out
.println(
"Proxyer do operation2 with "
+ arg);
proxied
.operation2(arg);
}
}
²âÊÔÀà
SimpleProxyDemo.java
package
com.zj.proxy.client;
import
com.zj.proxy.Subject;
import
com.zj.proxy.RealSubject;
import
com.zj.proxy.ProxySubject;
public
class
SimpleProx
Ïà¹ØÎĵµ£º
¡¾Ò»¡¿»ùÓÚ×Ö½ÚµÄÊäÈëÁ÷
ÖµµÃ×¢ÒâµÄµØ·½ÓУº
¢ÙLevel 2µÄÊäÈëÁ÷£¬´ó¶àÊý¶¼»áÖ¸Ã÷Êý¾ÝÔ´µÄÐÎʽ£ºÀýÈçByteArray£¬File£¬Piped
¢ÚLevel 3µÄÊäÈëÁ÷£¬Ôò²»»á³öÏÖ¾ßÌåµÄÊý¾ÝÔ´Ãû×Ö£¬¶øÊÇÒÔ¹¦ÄÜÈ¡´ú£ºÀýÈçBuffered£¬LineNumber
ËùÒÔ˵Level 3µÄÊäÈëÁ÷ÊǶÔLevel 2ÊäÈëÁ÷µÄ“·â×°ºÍ¹ýÂË”¡£Êµ¼ÊÉÏLevel 2µÄÊäÈëÁ÷£¬¶ ......
·ºÐÍÊÇJava SE 1.5µÄÐÂÌØÐÔ£¬·ºÐ͵ı¾ÖÊÊDzÎÊý»¯ÀàÐÍ£¬Ò²¾ÍÊÇ˵Ëù²Ù×÷µÄÊý¾ÝÀàÐͱ»Ö¸¶¨ÎªÒ»¸ö²ÎÊý¡£ÕâÖÖ²ÎÊýÀàÐÍ¿ÉÒÔÓÃÔÚÀà¡¢½Ó¿ÚºÍ·½·¨µÄ´´½¨ÖУ¬·Ö±ð³ÆΪ·ºÐÍÀà¡¢·ºÐͽӿڡ¢·ºÐÍ·½·¨¡£
¡¡¡¡JavaÓïÑÔÒýÈë·ºÐ͵ĺô¦ÊÇ°²È«¼òµ¥¡£
¡¡¡¡ÔÚJava SE 1.5֮ǰ£¬Ã»ÓзºÐ͵ÄÇé¿öµÄÏ£¬Í¨¹ý¶ÔÀàÐÍObjectµÄÒýÓÃÀ´ÊµÏÖ²ÎÊýµÄ“È ......
1. ±äÁ¿²»×ö³õʼ»¯¡£
2. ·ÖÅäµÄ¶ÔÏó²»×öÏú»Ù¡£Ò»¸öºÃµÄÏ°¹ß¾ÍÊÇ£¬Ã¿Éú³ÉÒ»¸öÀàʱ£¬¾Í×Ô¶¯Ð´Ò»¸ö×Ô¼ºµÄInitInstanceMember,ºÍ ReleaseInstanceMember()·½·¨¡£
3. °üµÄ·ÖÀ࣬Èç¹û×Ô¼º²»×ösourceµÄÂß¼·ÖÀ࣬C++»·¾³Ò»°ãÊDz»»á×Ô¼º×öµÄ¡£Õâ¸ö¸úJavaÖеÄpackageºÍÎļþÎïÀíÉÏ´æ´¢·½Ê½Ò»ÖÂÊDz»Ò»ÑùµÄ¡£
C++ ......
javaдÎļþÂÒÂë
StringBuffer sb = new StringBuffer();
sb.append("<table border=\"0\" width=\"100%\" cellpadding=\"0\" cellspacing=\"1\" bgcolor=\"b5d6e6\"");
sb.append("<tr>");
sb.append("<td bgcolor=\"#FFFFFE\" height=\"42\" colspan=\""+ (jsd ......