´úÀíģʽ֮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())£¬¿ÉÒÔ´¦ÀíһЩÆäËûÎÊÌâ¡£
ÁíÍ⣬Èç¹ûÒª°´ÕÕÉÏÊöµÄ·½·¨Ê¹ÓôúÀíģʽ£¬ÄÇÃ´ÕæÊµ½ÇÉ«±ØÐëÊÇÊÂÏÈÒѾ´æÔڵ쬲¢½«Æä×÷Ϊ´úÀí¶ÔÏóµÄÄÚ²¿ÊôÐÔ¡£µ«Ê
Ïà¹ØÎĵµ£º
RXTXÊÇÒ»¸ö¿ªÔ´°ü£¬Ö÷ÒªÊÇÔÚCOMM¿ªÔ´°üÖÐ×öÀ©ÕÅ£¬ÒÔǰµÄCOMM°üÖ»ÄÜÔÚWINDOWSÏÂÃæ¶Ô´®¿Ú»ò²¢¿Ú×ö²Ù×÷£¬À©³äºóµÄRXTX¿ÉÒÔÔÚLINUXºÍMAC϶Դ®¿ÚºÍ²¢¿Ú×ö²Ù×÷¡£ ÏÖÔÚ¿çÆ½Ì¨£º
ÔÚRXTXÍøÕ¾ÏÂÔØJAR°üºÍ¶¯Ì¬¿â
http://users.frii.com/jarvi/rxtx/download.html
ÏÂÔØºóÅäÖû·¾³
Windows
¿½±´RXTXcomm.jar Îļþ ......
PATH:
¡¡
ÓÃÀ´Ö¸¶¨ java
ÐéÄâ»ú(JVM) ËùÔÚÔÚĿ¼,Ò²¾ÍÊÇÎÒÃÇ×î³£ÓõÄÓÃÀ´±àÒëjavaÔ´³ÌÐòµÄjavac.exe ºÍÓÃÀ´Ö´ÐÐ *.class ÎļþµÄ
java.exe ÕâÁ½¸öÃüÁî¡£ÒÔÎҵĻúÆ÷ΪÀý°É£ºÎÒµÄ jdk °´×°Ä¿Â¼Îª D:\jdk1.5.0_08£¨È·ÇеÄ˵ÎÒµÄÕâ¸öJDK²»Êǰ²×°
°æ±¾µÄ£¬Ö±½Ó½âѹµ½ d:\ Ï嵀 £¬´ËʱÎÒµÄ path ¾ÍÒªÕâÑùÉèpath= ......
java¶à̬µÄ2ÖÖ±íÏÖÐÎʽ ·½·¨ÖØÔغͷ½·¨¸²¸Ç
·½·¨ÖØÔØ£ºÍ¬Ò»¸öÀàÖУ¬·½·¨ÃûÏàͬ£¬²ÎÊýÁÐ±í²»Í¬µÄ2¸ö»ò¶à¸ö·½·¨¹¹³É·½·¨µÄÖØÔØ¡£
·½·¨¸²¸Ç£º×ÓÀàÖØÐÂʵÏÖÁ˸¸ÀàÖеķ½·¨¡£
·½·¨ÖØÔØ
/**
* ·½·¨ÖØÔØÂú×ãµÄÌõ¼þ
* ͬһ¸öÀàÖУ¬·½·¨ÃûÏàͬ£¬²ÎÊýÁÐ±í²»Í¬µÄ2¸ö»ò¶à¸ö·½·¨¹¹³É·½·¨µÄÖØÔØ
* ²ÎÊýÁÐ±í²»Í¬Ö¸²ÎÊýµÄÀàÐÍ£¬²Î ......
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 ......