´úÀíģʽ֮Javaѧϰ±Ê¼Ç11ÔÂ07ÈÕ[תÌù]
´úÀíģʽ
´úÀíģʽµÄ×÷ÓÃÊÇ£º
ΪÆäËû¶ÔÏóÌṩһÖÖ´úÀíÒÔ¿ØÖƶÔÕâ¸ö¶ÔÏóµÄ·ÃÎÊ¡£ÔÚijЩÇé¿öÏ£¬Ò»¸ö¿Í»§²»Ïë»òÕß²»ÄÜÖ±½ÓÒýÓÃÁíÒ»¸ö¶ÔÏ󣬶ø´úÀí¶ÔÏó¿ÉÒÔÔÚ¿Í»§¶ËºÍÄ¿±ê¶ÔÏóÖ®¼äÆðµ½ÖнéµÄ×÷Óá£
´úÀíģʽһ°ãÉæ¼°µ½µÄ½ÇÉ«ÓУº
³éÏó½ÇÉ«£ºÉùÃ÷Õæʵ¶ÔÏóºÍ´úÀí¶ÔÏóµÄ¹²Í¬½Ó¿Ú£»
´úÀí½ÇÉ«£º´úÀí¶ÔÏó½ÇÉ«ÄÚ²¿º¬ÓжÔÕæʵ¶ÔÏóµÄÒýÓ㬴Ӷø¿ÉÒÔ²Ù×÷Õæʵ¶ÔÏó£¬Í¬Ê±´úÀí¶ÔÏóÌṩÓëÕæʵ¶ÔÏóÏàͬµÄ½Ó¿ÚÒÔ±ãÔÚÈκÎʱ¿Ì¶¼ÄÜ´úÌæÕæʵ¶ÔÏó¡£Í¬Ê±£¬´úÀí¶ÔÏó¿ÉÒÔÔÚÖ´ÐÐÕæʵ¶ÔÏó²Ù×÷ʱ£¬¸½¼ÓÆäËûµÄ²Ù×÷£¬Ï൱ÓÚ¶ÔÕæʵ¶ÔÏó½øÐзâ×°¡£
Õæʵ½ÇÉ«£º´úÀí½ÇÉ«Ëù´ú±íµÄÕæʵ¶ÔÏó£¬ÊÇÎÒÃÇ×îÖÕÒªÒýÓõĶÔÏó¡£
ÒÔÏÂÒÔ¡¶JavaÓëģʽ¡·ÖеÄʾÀýΪÀý£º
´úÂ룺 //³éÏó½ÇÉ«£º
abstract public class Subject{
abstract public void request();
}
//Õæʵ½ÇÉ«£ºÊµÏÖÁËSubjectµÄrequest()·½·¨¡£
public class RealSubject extends Subject{
public RealSubject(){
}
public void request(){
System.out.println("from real subject.");
}
}
//´úÀí½ÇÉ«£º
public class ProxySubject extends Subject{
private RealSubject realSubject; //ÒÔÕæʵ½ÇÉ«×÷Ϊ´úÀí½ÇÉ«µÄÊôÐÔ
public ProxySubject(){
}
public void request(){ //¸Ã·½·¨·â×°ÁËÕæʵ¶ÔÏóµÄrequest·½·¨
preRequest();
if( realSubject == null ){
realSubject = new RealSubject();
}
realSubject.request(); //´Ë´¦Ö´ÐÐÕæʵ¶ÔÏóµÄrequest·½·¨
postRequest();
}
private void preRequest(){
//something you want to do before requesting
}
private void postRequest(){
//something you want to do after requesting
}
}
//¿Í»§¶Ëµ÷Óãº
Subject sub=new ProxySubject();
Sub.request();
ÓÉÒÔÉÏ´úÂë¿ÉÒÔ¿´³ö£¬¿Í»§Êµ¼ÊÐèÒªµ÷ÓõÄÊÇRealSubjectÀàµÄrequest()·½·¨£¬ÏÖÔÚÓÃProxySubjectÀ´´úÀíRealSubjectÀ࣬ͬÑù´ïµ½Ä¿µÄ£¬Í¬Ê±»¹·â×°ÁËÆäËû·½·¨(preRequest(),postRequest())£¬¿ÉÒÔ´¦ÀíһЩÆäËûÎÊÌâ¡£
ÁíÍ⣬Èç¹ûÒª°´ÕÕÉÏÊöµÄ·½·¨Ê¹ÓôúÀíģʽ£¬ÄÇôÕæʵ½ÇÉ«±ØÐëÊÇÊÂÏÈÒѾ´æÔڵģ¬²¢½«Æä×÷Ϊ´úÀí¶ÔÏóµÄÄÚ²¿ÊôÐÔ¡£µ«Ê
Ïà¹ØÎĵµ£º
ÈçºÎ×ÔѧjavaѸËÙ³ÉΪjava¸ßÊÖ
ÒªÏëѧºÃJava£¬Ê×ÏÈÒªÖªµÀJavaµÄ´óÖ·ÖÀà¡£ÎÒÃÇÖªµÀ£¬×Ô´ÓSunÍƳöJavaÒÔÀ´£¬¾ÍÁ¦Í¼Ê¹Ö®ÎÞËù²»°ü£¬ËùÒÔJava·¢Õ¹µ½ÏÖÔÚ£¬°´Ó¦ÓÃÀ´·ÖÖ÷Òª·ÖΪÈý´ó¿é£ºJ2SE,J2MEºÍJ2EE,ÕâÒ²¾ÍÊÇSunONE(Open NetEnvironment)Ìåϵ¡£J2SE¾ÍÊÇJava2µÄ±ê× ......
ΪÁËÓ¦¸¶2009Äê11ÔÂ8ºÅ¹ã¶«µçÍøµÄ±ÊÊÔÌâÄ¿£¬ÌصØÕÒµ½Ò»ÆªJava±ÊÊÔÌâÄ¿(http://blog.csdn.net/yexianyi/archive/2009/04/25/4123350.aspx)£¬ÏÖÖØÐÂתÔØʹÓá£
Java±ÊÊÔÌ⼯½õ
1.MVCµÄ¸÷¸ö²¿·Ö¶¼ÓÐÄÇЩ¼¼ÊõÀ´ÊµÏÖ?ÈçºÎʵÏÖ?
´ð£ºMVCÊÇModel£View£ControllerµÄ¼òд¡£"Model" ´ú±íµÄÊÇÓ¦ÓõÄÒµÎñÂß¼£¨Í¨¹ýJavaBean£¬EJB× ......
java¶à̬µÄ2ÖÖ±íÏÖÐÎʽ ·½·¨ÖØÔغͷ½·¨¸²¸Ç
·½·¨ÖØÔØ£ºÍ¬Ò»¸öÀàÖУ¬·½·¨ÃûÏàͬ£¬²ÎÊýÁÐ±í²»Í¬µÄ2¸ö»ò¶à¸ö·½·¨¹¹³É·½·¨µÄÖØÔØ¡£
·½·¨¸²¸Ç£º×ÓÀàÖØÐÂʵÏÖÁ˸¸ÀàÖеķ½·¨¡£
·½·¨ÖØÔØ
/**
* ·½·¨ÖØÔØÂú×ãµÄÌõ¼þ
* ͬһ¸öÀàÖУ¬·½·¨ÃûÏàͬ£¬²ÎÊýÁÐ±í²»Í¬µÄ2¸ö»ò¶à¸ö·½·¨¹¹³É·½·¨µÄÖØÔØ
* ²ÎÊýÁÐ±í²»Í¬Ö¸²ÎÊýµÄÀàÐÍ£¬²Î ......
1.privateÐÞÊη½·¨²»Äܱ»ÍⲿÀàµ÷Óá£
2.finalÐÞÊεĶÔÏó¹¹½¨ºó²»Äܱ»Ð޸ġ£
À©Õ¹:
finalÀ಻Äܱ»¼Ì³Ð£¬Ã»ÓÐ×ÓÀ࣬finalÀàÖеķ½·¨Ä¬ÈÏÊÇfinal¡£
final²»Äܱ»×ÓÀàµÄ·½·¨¸²¸Ç£¬µ«¿ÉÒÔ±»¼Ì³Ð¡£
final³ÉÔ±±äÁ¿±íʾ³£Á¿£¬Ö»Äܱ»¸³ÖµÒ»´Î£¬¸³ÖµºóÖµ²»Ôٸı䡣
final²»ÄÜÓÃÓÚÐÞÊι¹Ôì·½·¨¡£
finalº¯Êý²ÎÊýÎÞ·¨±»¸Ä±ä¡£
¸¸ ......
package sample1;
import java.io.File;
import jp.ne.so_net.ga2.no_ji.jcom.IDispatch;
import jp.ne.so_net.ga2.no_ji.jcom.JComException;
import jp.ne.so_net.ga2.no_ji.jcom.ReleaseManager;
/**
* ʹÓÃjComʵÏÖдexcelÎļþµÄÁíÒ»ÖÖ·½Ê½£¨IDispatch£©
* @author steve_wang_victor
&nbs ......