java¶¯Ì¬´úÀí
´úÀíģʽµÄ×÷ÓÃÊÇ£ºÎªÆäËû¶ÔÏóÌṩһÖÖ´úÀíÒÔ¿ØÖƶÔÕâ¸ö¶ÔÏóµÄ·ÃÎÊ¡£
ÔÚijЩÇé¿öÏ£¬Ò»¸ö¿Í»§²»Ïë»òÕß²»ÄÜÖ±½ÓÒýÓÃÁíÒ»¸ö¶ÔÏ󣬶ø´úÀí¶ÔÏó¿ÉÒÔÔÚ¿Í»§¶ËºÍÄ¿±ê¶ÔÏóÖ®¼äÆðµ½ÖнéµÄ×÷Óá£
´úÀíģʽһ°ãÉæ¼°µ½µÄ½ÇÉ«ÓÐ
³éÏó½ÇÉ«£ºÉùÃ÷ÕæÊµ¶ÔÏóºÍ´úÀí¶ÔÏóµÄ¹«¹²½Ó¿Ú£¨Çó¾Ö³¤°ìʵÄÈË£©
´úÀí½ÇÉ«£º´úÀí¶ÔÏó½ÇÉ«ÄÚ²¿º¬ÓжÔÕæÊµ¶ÔÏóµÄÒýÓ㬴Ӷø¿ÉÒÔ²Ù×÷ÕæÊµ¶ÔÏó£¬Í¬Ê±´úÀí¶ÔÏóÌṩÓëÕæÊµ¶ÔÏóÏàͬµÄ½Ó¿ÚÒÔ±ãÔÚÈκÎʱ¿Ì¶¼ÄÜ´úÌæÕæÊµ¶ÔÏó¡£Í¬Ê±£¬´úÀí¶ÔÏó¿ÉÒÔÔÚÖ´ÐÐÕæÊµ²Ù×÷ʱ£¬¸½¼ÓÆäËûµÄ²Ù×÷£¬Ï൱ÓÚ¶ÔÕæÊµ¶ÔÏó½øÐзâ×°¡££¨ÃØÊ飩
ÕæÊµ½ÇÉ«£º´úÀí½ÇÉ«Ëù´ú±íµÄÕæÊµ¶ÔÏó£¬ÊÇÎÒÃÇ×îÖÕÒªÒýÓõĶÔÏó¡££¨¾Ö³¤£©
ÓÉÒÔÉÏ´úÂë¿ÉÒÔ¿´³ö£¬¿Í»§Êµ¼ÊÐèÒªµ÷ÓõÄÊÇRealSubjectÀàµÄrequest()·½·¨£¬ÏÖÔÚÓÃProxySubjectÀ´´úÀíRealSubjectÀ࣬ͬÑù´ïµ½Ä¿µÄ£¬Í¬Ê±»¹·â×°ÁËÆäËû·½·¨(preRequest(),postRequest()),¿ÉÒÔ´¦ÀíһЩÆäËûÎÊÌâ¡£
ÁíÍ⣬Èç¹ûÒª°´ÕÕÉÏÊöµÄ·½·¨Ê¹ÓôúÀíģʽ£¬ÄÇÃ´ÕæÊµ½ÇÉ«±ØÐëÊÇʵÏÖÒѾ´æÔڵ쬲¢½«Æä×÷Ϊ´úÀí¶ÔÏóµÄÄÚ²¿ÊôÐÔ£¬µ«ÊÇʵ¼ÊʹÓÃʱ£¬Ò»¸öÕæÊµ½ÇÉ«±ØÐë¶ÔÓ¦Ò»¸ö´úÀí½ÇÉ«£¬Èç¹û´óÁ¿Ê¹ÓûᵼÖÂÀàµÄ¼±¾çÅòÕÍ£¬´ËÍ⣬Èç¹ûʵÏÖ²¢²»ÖªµÀÕæÊµ½ÇÉ«£¬¸ÃÈçºÎʹÓôúÀíÄØ£¿Õâ¸öÎÊÌâ¿ÉÒÔͨ¹ýJavaµÄ¶¯Ì¬´úÀíÀàÀ´½â¾ö¡£
Java¶¯Ì¬´úÀíÀàλÓÚJava.lang.reflect°üÏ£¬Ò»°ãÖ÷񻃾¼°µ½ÒÔÏÂÁ½¸öÀࣺ
1.interface invocationHandler:¸Ã½Ó¿ÚÖнö¶¨ÒåÁËÒ»¸ö·½·¨ public object invoke(Object obj,Method method,Object[]args)
ÔÚʵ¼ÊʹÓÃʱ£¬µÚÒ»¸ö²ÎÊýobjÒ»°ãÊÇÖ¸´úÀíÀ࣬methodÊDZ»´úÀíµÄ·½·¨£¬ÈçÉÏÀýÖеÄrequest(), argsΪ¸Ã·½·¨µÄ²ÎÊýÊý×飬Õâ¸ö³éÏó·½·¨ÔÚ´úÀíÀàÖж¯Ì¬ÊµÏÖ¡£
2.Proxy:¸ÃÀ༴Ϊ¶¯Ì¬´úÀíÀ࣬×÷ÓÃÀàËÆÓÚÉÏÀýÖеÄProxySubject---ÃØÊ飬ÆäÖÐÖ÷Òª°üº¬ÒÔÏÂÄÚÈÝ
protected Proxy(InvocationHandler h):¹¹Ô캯Êý£¬ÓÃÓÚ¸øÄÚ²¿µÄh¸³Öµ¡£
static Class getProxyClass(ClassLoader loader,Class[]interface):»ñµÃÒ»¸ö´úÀíÀ࣬ÆäÖÐloaderÊÇÀà×°ÔØÆ÷£¬interfacesÊÇÕæÊµÀàËùÓµÓеÄÈ«²¿½Ó¿ÚµÄÊý×é¡£
static Object newProxyInstance(ClassLoader loader,Class[]interfaces,InvocationHandler h):·µ»ØÒ»¸ö´úÀíÀàµÄÒ»¸öʵÀý£¬·µ»ØºóµÄ´úÀíÀà¿ÉÒÔµ±×ö±»´úÀíÀàʹÓÃ(¿ÉʹÓñ»´úÀíÀàÔÚSubject½Ó¿ÚÖÐÉùÃ÷¹ýµÄ·½·¨)
´úÀíÀà ÃØÊé ±»´úÀíÀà ¾Ö³¤
ËùνDynamic ProxyÊÇÕâÑùÒ»ÖÖclass:ËüÊÇÔÚÔËÐÐʱÉú³ÉµÄcl
Ïà¹ØÎĵµ£º
ÔÎÄÁ´½Ó£ºhttp://student.csdn.net/space.php?uid=22846&do=thread&id=205&page=1
1¡¢Óï·¨
£º±ØÐë±È½ÏÊìϤ£¬ÔÚд´úÂëµÄʱºòIDEµÄ±à¼Æ÷¶ÔijһÐб¨´íÓ¦¸ÃÄܹ»¸ù¾Ý±¨´íÐÅÏ¢ÖªµÀÊÇʲôÑùµÄÓï·¨´íÎó²¢ÇÒÖªµÀÈκÎÐÞÕý¡£
2¡¢ÃüÁî
£º±ØÐëÊìϤJDK´øµÄһЩ³£ÓÃÃüÁî¼°Æä³£ÓÃÑ¡ÏÃüÁîÖÁÉÙÐèÒªÊìϤ£ºappletviewer¡ ......
import java.util.prefs.*;
public class Registery {
String[] keys = {"oa"};
String[] values = {"reg"};
//°ÑÏàÓ¦µÄÖµ´¢´æµ½±äÁ¿ÖÐÈ¥
public void writeValue() { ......
EclipseÓënetbeansʹÓÃÆÀ²â
½çÃæ
1 ÔÚ½çÃæÉÏnetbeans±È½ÏƯÁÁ,ÓѺá£µÃ·Ö 9
2 EclipseÓкÜÇ¿µÄ¶¨ÖÆÐУ¬Ã»netbeansÃÀ¹Û¡£ÊʺϸßÊÖ µÃ·Ö 8
¹¦ÄÜ
²»×ö±È½Ï
̸һЩ¸öÈË¿´·¨:ÔÚ¹¦ÄÜÉÏEclipseÖ§³Ö´óÁ¿µÄÀ©Õ¹,²»½ö½öÊÇÒ»¸ö java¿ª·¢¹¤¾ß,¸ü¿ÉÒÔÓÃÀ´¿ª·¢ c c++
phpµÈµÈ,¹¦ÄÜ¿ÉÒÔÎÞÏÞµÄÀ©Õ¹.netbeansÒ²Ö§³ÖÀ©Õ¹,¿ÉÒ²ÏÖÔ ......
Ò»¡¢JavaÒì³£µÄ»ù´¡ÖªÊ¶
Òì³£ÊdzÌÐòÖеÄһЩ´íÎ󣬵«²¢²»ÊÇËùÓеĴíÎó¶¼ÊÇÒì³££¬²¢ÇÒ´íÎóÓÐʱºòÊÇ¿ÉÒÔ±ÜÃâµÄ¡£±ÈÈç˵£¬ÄãµÄ´úÂëÉÙÁËÒ»¸ö·ÖºÅ£¬ÄÇôÔËÐгöÀ´½á¹ûÊÇÌáʾÊÇ´íÎójava.lang.Error£»Èç¹ûÄãÓÃSystem.out.println(11/0)£¬ÄÇôÄãÊÇÒòΪÄãÓÃ0×öÁ˳ýÊý£¬»áÅ׳öjava.lang.ArithmeticExceptionµÄÒì³£ ......