·´Ïò¿ØÖÆ Inversion of Control(JAVA Application)
Android_1.0_eBook_by_tom_kao_2008_10_15.pdf
¡¶AndroidÓ¦Óÿò¼ÜÔÀíÓë³ÌÐòÉè¼Æ36¼¼¡·
±¾書ÍêÕû範例³Ìʽ碼請µ½網Õ¾ÏÂ載:
www.misoo1.com »ò tom-kao.blogspot.com
¸ß煥ÌÃ Öø(2008 年10 ÔµÚÈý°æ)
misoo.tw@gmail.com
·´Ïò¿ØÖÆ(Inversion of Control)
當×Ó類別繼³Ð¸¸類別時£¬¸¸類別Ö®º¯數¿ÉÒÔºô½Ð×Ó類別Ö®º¯數¡£雖È»¸¸類別(ǰ輩)誕Éú時£¬×Ó類別(Íí輩)³£³£ÉÐδ誕Éú﹔µ«ÊÇǰ輩ÓÐ時ºò¿É預ÖªÍí輩Öеĺ¯數£¬¾Í¿Éºô½ÐËü¡£
¿ò¼Ü裡µÄ³éÏó類別¾ÍÊǰçÑݸ¸類別µÄ½ÇÉ«£¬Ö»ÊǺ¬ÓÐһЩ陽´ºÐÍ(³éÏóµÄ)µÄ類別£¬ÆäÌṩºÜͨÓ㬵«不ÍêÕûµÄº¯數£¬ÊÇ設計師¿ÌÒâ留給應ÓóÌʽµÄ×Ó類別來補³äµÄ¡£Ò»µ©補³äÍê³É£¬¿ò¼Ü裡µÄ¸¸類別µÄº¯數¾Í¿ÉÒÔ¡¸·´Ïòºô½Ð¡¹×Ó類別裡µÄº¯數了¡£
2.2.2.1 ÒÔÒ»°ãJava ³Ìʽ為例
例È磺ÓÐ了Ò»個繪圖µÄShape ¸¸類別£º
// Shape.java
package framework;
public class Shap{
public void paint() { this.onDraw(); }
public abstract void onDraw();
}
設計Õß預ÆÚ×Ó類別將會¶¨義Ò»個Draw()º¯數£¬ì¶ÊÇ讓Paint()ºô½Ð×Ó類別µÄDraw()º¯數¡£ì¶ÊÇ×Ó類別(Íí輩)ÌṩDraw()給¸¸類別(ǰ輩)來ºô½ÐÖ®£¬ÈçÏ£º
//Cicrle.java
package _objects;
import java.awt.Color;
import java.awt.Graphics;
import _framework.*;
public class Circle extends Shape {
private Graphics m_gr;
private int x, y, radius;
public Circle(Graphics gr) { m_gr = gr; }
public void Se
Ïà¹ØÎĵµ£º
JavaỊ̈߳ºÐÂÌØÕ÷-Ëø£¨ÉÏ£©
ÔÚJava5ÖУ¬×¨ÃÅÌṩÁËËø¶ÔÏó£¬ÀûÓÃËø¿ÉÒÔ·½±ãµÄʵÏÖ×ÊÔ´µÄ·âËø£¬ÓÃÀ´¿ØÖƶԾºÕù×ÊÔ´²¢·¢·ÃÎʵĿØÖÆ£¬ÕâЩÄÚÈÝÖ÷Òª¼¯ÖÐÔÚjava.util.concurrent.locks °üÏÂÃæ£¬ÀïÃæÓÐÈý¸öÖØÒªµÄ½Ó¿ÚCondition¡¢Lock¡¢ReadWriteLock¡£
Condition
Condition ½« Object ¼àÊÓÆ÷·½·¨£¨wait¡¢notify ......
JavaỊ̈߳ºÐÂÌØÕ÷-ÐźÅÁ¿
JavaµÄÐźÅÁ¿Êµ¼ÊÉÏÊÇÒ»¸ö¹¦ÄÜÍê±ÏµÄ¼ÆÊýÆ÷£¬¶Ô¿ØÖÆÒ»¶¨×ÊÔ´µÄÏû·ÑÓë»ØÊÕÓÐןÜÖØÒªµÄÒâÒ壬ÐźÅÁ¿³£³£ÓÃÓÚ¶àÏ̵߳ĴúÂëÖУ¬²¢ÄÜ¼à¿ØÓжàÉÙÊýÄ¿µÄÏ̵߳ȴý»ñÈ¡×ÊÔ´£¬²¢ÇÒͨ¹ýÐźÅÁ¿¿ÉÒÔµÃÖª¿ÉÓÃ×ÊÔ´µÄÊýÄ¿µÈµÈ£¬ÕâÀï×ÜÊÇÔÚÇ¿µ÷“ÊýÄ¿”¶þ×Ö£¬µ«²»ÄÜÖ¸³öÀ´ÓÐÄÄЩÔڵȴý£¬ÄÄЩ×ÊÔ ......
ÊäÈëÊä³öÁ÷
ÔÚJavaÖУ¬ÎÒÃǰÑÄܹ»¶Áȡһ¸ö×Ö½ÚÐòÁеĶÔÏó³Æ×÷Ò»¸öÊäÈëÁ÷;¶øÎÒÃǰѹ»Ð´Ò»¸ö×Ö½ÚÐòÁгÆ×÷Ò»¸öÊä³öÁ÷¡£ËüÃÇ·Ö±ðÓɳéÏóÀà InputStreamºÍOutputStreamÀà±íʾ¡£ÒòÎªÃæÏò×Ö½ÚµÄÁ÷²»·½±ãÓÃÀ´´¦Àí´æ´¢ÎªUnicode£¨Ã¿¸ö×Ö·ûʹÓÃÁ½¸ö×Ö½Ú)µÄÐÅÏ¢¡£ËùÒÔJavaÒýÈëÁËÓÃÀ´´¦ÀíUnicode×Ö·ûµÄÀà²ã´Î£¬ÕâЩÀàÅÉÉú×Ô³éÏóÀàReade ......
Java Àà·¾¶
Java Àà·¾¶¸æËß java ½âÊÍÆ÷ºÍ javac ±àÒëÆ÷È¥ÄÄÀïÕÒËüÃÇÒªÖ´Ðлòµ¼ÈëµÄÀà¡£ÀࣨÄú¿ÉÄÜ×¢Òâµ½µÄÄÇЩ *.class Îļþ£©¿ÉÒÔ´æ´¢ÔÚĿ¼»ò jar ÎļþÖУ¬»òÕß´æ´¢ÔÚÁ½ÕßµÄ×éºÏÖУ¬µ«ÊÇÖ»ÓÐÔÚËüÃÇλÓÚÀà·¾¶ÖеÄij¸öµØ·½Ê±£¬Java ±àÒëÆ÷»ò½âÊÍÆ÷²Å¿ÉÒÔÕÒµ½ËüÃÇ¡£
ÔÚ Windows ÖУ¬Àà·¾¶ÖеĶà¸öÏîÊÇÓ÷ֺŷָô£¨ ;£ ......