Java Ö®´úÀíģʽ
´úÀíģʽ
´úÀíģʽµÄ×÷ÓÃ: ΪÆäËû¶ÔÏóÌṩһÖÖ´úÀíÒÔ¿ØÖƶÔÕâ¸ö¶ÔÏóµÄ·ÃÎÊ£¬ÔÚijЩÇé¿öÏ£¬Ò»¸ö¿Í»§²»Ïë»òÕß²»ÄÜÖ±½ÓÒýÓÃÁíÒ»¸ö¶ÔÏó£¬
¶ø´úÀí¶ÔÏó¿ÉÒÔÔÚ¿Í»§¶ËºÍÄ¿±ê¶ÔÏóÖ®¼äÆðµ½ ÖÐ½é µÄ×÷ÓÃ
¾ÙÒ»¸öÀý×Ó: ijһ¸öÈËÏëÇëÒ»¸ö¾Ö³¤ÎªËû°ìһЩÊÂÇé,Õâ¸öÈË¿ÉÄܲ»ÄÜÖ±½ÓÈ¥Õâ¸ö¾Ö³¤£¬ÒòΪ¾Ö³¤²»ÈÏʶËû£¬¼´Ê¹¿Í»§¸øËûËÍÀñ»òһЩǮ£¬¾Ö³¤Ò²²»»áÊÕ,ÕâʱºòÔõô°ì£¿¿Í»§¿ÉÒÔÏÈÈ¥ÕÒ¾Ö³¤µÄÃØÊé»òÉí±ßºìÈË£¬¾Ö³¤ÃØÊ鵱ȻÀ²£¬¸ú¾Ö³¤±È½ÏÃÜÇУ¬
Õâ¸ö¿Í»§ËûÈÏʶÕâ¸öÃØÊ飬Ëûͨ¹ýÃØÊ飬¸æËßÕâ¸öÃØÊ飬ÎÒÒªÏëÇë¾Ö³¤°ìЩʲôÊÂÇéÓÉÕâ¸öÃØÊéÈ¥Èþֳ¤È¥×öÕâ¸öÊÂÇ飬ËûÄØ£¬°ÑһЩËÍÀñ°¡£¬ÀñÆ·°¡Ë͸øÃØÊ飬ÓÉÃØÊéת½»¸ø¾Ö³¤¾Ö³¤ÊÕµ½ÃØÊé¸øËûµÄÀñÎïÖ®ºó£¬Ëû¾Í¿ÉÒÔΪÕâ¸öÈË°ìЩÊÂÇ飬ÕâʱºòÃØÊé¾ÍÏ൱ÓÚÊÇÖн顣
³éÏó½ÇÉ«£ºÏë°ìʵÄÈË
´úÀí½ÇÉ«£ºÃØÊé
Õæʵ½ÇÉ«£º¾Ö³¤£¬Ëû¾ßÓÐÍê³ÉËùÐèÒªµÄ¹¦ÄÜ
1.ʾÀý
Ö÷ҪʵÏÖ´úÂë,·Ö 4 ²½:
µÚÒ»²½ ³éÏó½ÇÉ«:
Subject.java
abstract public class Subject{ abstract public void request();}
µÚ¶þ²½´úÀí½ÇÉ«:
ProxySubject.java
public class ProxySubject{
private RealSubject realSubject; //ÒÔÕæʵ½ÇÉ«×÷Ϊ´úÀí½ÇÉ«µÄÊôÐÔ
public ProxySubject(){}
public void request(){ //¸Ã·½·¨·â×°ÁËÕæʵ¶ÔÏóµÄrequest·½·¨
preRequest();
if(realSubject == null)
{
realSubject = new RealSubject();
}
realSubject.request(); //´Ë´¦Ö´ÐÐÕæʵ¶ÔÏóµÄrequest·½·¨,Õâ¾äÌåÏÖÁË´úÀí˼Ïë
postRequest();
}
private void preRequest(){
System.out.println("hello");
}
private void postRequest(){
System.out.println("world");
}
}
µÚÈý²½ Õæʵ½ÇÉ«
RealSubject.java
public class RealSubject{
public RealSubject(){}
public void request(){
System.out.println("from real request");
}
}
µÚËIJ½ ¿Í»§¶Ëµ÷ÓÃ:
Client.java
public class Client{
public static void main(String[] args){
Subject sub = new ProxySubject();
sub.
Ïà¹ØÎĵµ£º
Javaѧϰ´ÓÈëÃŵ½¾«Í¨
Ò»¡¢ JDK (Java Development Kit)
JDKÊÇÕû¸öJavaµÄºËÐÄ£¬°üÀ¨ÁËJavaÔËÐл·¾³£¨Java Runtime Envirnment£©£¬Ò»¶ÑJava¹¤¾ßºÍJava»ù´¡µÄÀà¿â(rt.jar)¡£²»ÂÛʲôJavaÓ¦Ó÷þÎñÆ÷ʵÖʶ¼ÊÇÄÚÖÃÁËij¸ö°æ±¾µÄJDK¡£Òò´ËÕÆÎÕJDKÊÇѧºÃJavaµÄµÚÒ»²½¡£×îÖ÷Á÷µÄJ ......
1.»ù±¾¸ÅÄîµÄÀí½â
¾ø¶Ô·¾¶£º¾ø¶Ô·¾¶¾ÍÊÇÄãµÄÖ÷Ò³ÉϵÄÎļþ»òĿ¼ÔÚÓ²ÅÌÉÏÕæÕýµÄ·¾¶£¬(URLºÍÎïÀí·¾¶)ÀýÈ磺
C:xyz est.txt ´ú±íÁËtest.txtÎļþµÄ¾ø¶Ô·¾¶¡£http://www.sun.com/index.htmÒ²´ú±íÁËÒ»¸öURL¾ø¶Ô·¾¶¡£
Ïà¶Ô·¾¶£ºÏà¶ÔÓëij¸ö»ù׼Ŀ¼µÄ·¾¶¡£°üº¬WebµÄÏà¶Ô·¾¶£¨HTMLÖеÄÏà¶ÔĿ¼£©£¬ÀýÈ磺ÔÚ
Servl ......
Óöµ½¹ýÕâÑùÒ»¸öÇé¿ö£¬ÐèÒªÓÃjava¶ÁÈ¡Ò»¸ö200MµÄÎı¾¸ñʽÎļþ£¬¶øÇÒ»¹ÐèÒª¶ÔÎļþµÄÄÚÈÝ×ö½âÎö£¬½øÐзִʡ£Èç¹ûÓÃJVMµÄĬ
ÈÏÉèÖã¬ÀûÓÃScannerÀàÖ»ÄܶÁ³ö4M´óСÄÚÈÝ£¬ÓÚÊÇÎÒ¾ÍÔÚÍøÉÏËÑË÷£¬µ«ÊÇÍøÉÏûÓÐÕÒµ½Ò»ÆªÎÄÕÂÊÇÎÒËùÐèÒªµÄÄÚÈÝ¡£ÓÚÊÇÎÒÖ»ºÃ·thinking
in
java£¬·¢ÏÖÁËÒ»¸öjavaµÄnioÀïÓиöMappedByteBufferÀ࣬ËûµÄ×÷Ó ......
1.³éÏ󣺳éÏó¾ÍÊǺöÂÔÒ»¸öÖ÷ÌâÖÐÓ뵱ǰĿ±êÎ޹صÄÄÇЩ·½Ã棬ÒÔ±ã¸ü³ä·ÖµØ×¢ÒâÓ뵱ǰĿ±êÓйصķ½Ãæ¡£³éÏó²¢²»´òËãÁ˽âÈ«²¿ÎÊÌ⣬¶øÖ»ÊÇÑ¡ÔñÆäÖеÄÒ»²¿·Ö£¬ÔÝʱ²»Óò¿·Öϸ½Ú¡£³éÏó°üÀ¨Á½¸ö·½Ã棬һÊǹý³Ì³éÏ󣬶þÊÇÊý¾Ý³éÏó¡£¹ý³Ì³éÏóÊÇÖ¸ÈκÎÒ»¸öÃ÷È·¶¨Ò幦ÄܵIJÙ×÷¶¼¿É±»Ê¹ÓÃÕß¿´×÷µ¥¸öµÄʵÌå¿´´ý£¬¾¡¹ÜÕâ¸ö²Ù×÷ʵ¼Ê ......
½á¹¹Ä£Ê½£¨££©
Adapter(ÊÊÅäÆ÷)
½«Ò»¸öÀàµÄ½Ó¿Úת»»³É¿Í»§Ï£ÍûµÄÁíÍâÒ»¸ö½Ó¿Ú¡£AdapterģʽʹµÃÔ±¾ÓÉÓÚ½Ó¿Ú²»¼æÈݶø²»ÄÜÒ»Æð¹¤×÷µÄÄÇЩÀà¿ÉÒÔÒ»Æð¹¤×÷¡£
Adapter·ÖΪ2ÖÖ:
ÀàÊÊÅäÆ÷ºÍ¶ÔÏóÊÊÅäÆ÷¡£AdapterºÍAdapteeÖ®¼äÊÇis-a¹ØϵµÄʱºò£¬ÊôÓÚÀàÊÊÅäÆ÷£¬AdapterºÍAdapteeÖ®¼äÊÇhas-a¹ØϵµÄʱºò£¬ÊôÓÚ¶ÔÏóÊÊÅäÆ÷¡£ ......