ÈçºÎʹÓÃ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
Ïà¹ØÎĵµ£º
/**
*ÐèÒª´«Èë pageNo µ±Ç°Ò³
* pageSizeÒ»Ò³ÏÔʾµÄÌõÊý
  ......
Èç¹ûÒªÔËÐÐjava³ÌÐò¾Í±ØÐë°²×°JRE£¨Java Runtime Environment)
Èç¹ûÒª¿ª·¢java³ÌÐò¾Í±ØÐë°²×°JDK£¨Java Develope Kit)
£¬×¢ÒâJDKÖаüÀ¨ÁËJRE¡£
°²×°Íê³Éºó£¬ÐèÒªÐÞ¸Äϵͳ»·¾³±äÁ¿PATH·½·¨£¬²ÅÄÜʹϵͳ֪µÀµ½ÄÄÀïÈ¥ÕÒjavacµÈÏà¹Ø±àÒëÐèÒªµÄÃüÁ·½·¨ÈçÏ£º
1¡¢ÓÒ¼üµ¥»÷ÎҵĵçÄÔ£¬Ñ¡‘ÊôÐÔ’²Ëµ¥£¬ÔÚµ¯³öµÄ¶Ô» ......
1.java static inner class ºÍ non-static inner classµÄÇø±ð?
2.Çëд³öÒ»¸ösingletonģʽµÄclass.
ÄãÈç¹ûд³öÏÂÃæµÄ2ÖÖÑùʽ,ÎÒ»áÎÊÄã:ÇëÎÊÄãÈçºÎÔÚͬһ¸öjvmÖв¢ÇÒÔÚͬһ¸öclassLoaderÖеõ½ËüµÄ¶à¸öʵÀý?(Çë²»ÒªÆæ¹Ö)
ÑùÁÐ1:
public class Singleton {
private final static Singleton instance= ......
JAVA·´Éä»úÖÆÊÇÔÚÔËÐÐ״̬ÖУ¬¶ÔÓÚÈÎÒâÒ»¸öÀ࣬¶¼Äܹ»ÖªµÀÕâ¸öÀàµÄËùÓÐÊôÐԺͷ½·¨£»¶ÔÓÚÈÎÒâÒ»¸ö¶ÔÏ󣬶¼Äܹ»µ÷ÓÃËüµÄÈÎÒâÒ»¸ö·½·¨£»ÕâÖÖ¶¯Ì¬»ñÈ¡µÄÐÅÏ¢ÒÔ¼°¶¯Ì¬µ÷ÓöÔÏóµÄ·½·¨µÄ¹¦ÄܳÆÎªjavaÓïÑԵķ´Éä»úÖÆ¡£
package mypakage;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method; ......