·´Ïò¿ØÖÆ 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
Ïà¹ØÎĵµ£º
ÉèÖÃ×¢ÊÍÄ£°åµÄÈë¿Ú£º Window->Preference->Java->Code Style->Code Template È»ºóÕ¹¿ªComments½Úµã¾ÍÊÇËùÓÐÐèÉèÖÃ×¢Ê͵ÄÔªËØÀ²¡£ÏÖ¾Íÿһ¸öÔªËØÖðÒ»½éÉÜ£º
Îļþ(Files)×¢ÊͱêÇ©£º
/**
* @Title: ${file_name}
* @Package ${package_name}
* @Description: ${todo}(ÓÃÒ»¾ä»°ÃèÊö¸ÃÎļ ......
JavaỊ̈߳ºÐÂÌØÕ÷-ÐźÅÁ¿
JavaµÄÐźÅÁ¿Êµ¼ÊÉÏÊÇÒ»¸ö¹¦ÄÜÍê±ÏµÄ¼ÆÊýÆ÷£¬¶Ô¿ØÖÆÒ»¶¨×ÊÔ´µÄÏû·ÑÓë»ØÊÕÓÐןÜÖØÒªµÄÒâÒ壬ÐźÅÁ¿³£³£ÓÃÓÚ¶àÏ̵߳ĴúÂëÖУ¬²¢ÄÜ¼à¿ØÓжàÉÙÊýÄ¿µÄÏ̵߳ȴý»ñÈ¡×ÊÔ´£¬²¢ÇÒͨ¹ýÐźÅÁ¿¿ÉÒÔµÃÖª¿ÉÓÃ×ÊÔ´µÄÊýÄ¿µÈµÈ£¬ÕâÀï×ÜÊÇÔÚÇ¿µ÷“ÊýÄ¿”¶þ×Ö£¬µ«²»ÄÜÖ¸³öÀ´ÓÐÄÄЩÔڵȴý£¬ÄÄЩ×ÊÔ ......
JavaỊ̈߳ºÐÂÌØÕ÷-ÕϰÆ÷
Java5ÖУ¬Ìí¼ÓÁËÕϰÆ÷À࣬ΪÁËÊÊÓ¦Ò»ÖÖеÄÉè¼ÆÐèÇ󣬱ÈÈçÒ»¸ö´óÐ͵ÄÈÎÎñ£¬³£³£ÐèÒª·ÖÅäºÃ¶à×ÓÈÎÎñÈ¥Ö´ÐУ¬Ö»Óе±ËùÓÐ×ÓÈÎÎñ¶¼Ö´ÐÐÍê³Éʱºò£¬²ÅÄÜÖ´ÐÐÖ÷ÈÎÎñ£¬Õâʱºò£¬¾Í¿ÉÒÔÑ¡ÔñÕϰÆ÷ÁË¡£
ÕϰÆ÷ÊǶàÏ̲߳¢·¢¿ØÖƵÄÒ»ÖÖÊֶΣ¬Ó÷¨ºÜ¼òµ¥¡£ÏÂÃæ¸ø¸öÀý×Ó£º
import jav ......
Java Àà·¾¶
Java Àà·¾¶¸æËß java ½âÊÍÆ÷ºÍ javac ±àÒëÆ÷È¥ÄÄÀïÕÒËüÃÇÒªÖ´Ðлòµ¼ÈëµÄÀà¡£ÀࣨÄú¿ÉÄÜ×¢Òâµ½µÄÄÇЩ *.class Îļþ£©¿ÉÒÔ´æ´¢ÔÚĿ¼»ò jar ÎļþÖУ¬»òÕß´æ´¢ÔÚÁ½ÕßµÄ×éºÏÖУ¬µ«ÊÇÖ»ÓÐÔÚËüÃÇλÓÚÀà·¾¶ÖеÄij¸öµØ·½Ê±£¬Java ±àÒëÆ÷»ò½âÊÍÆ÷²Å¿ÉÒÔÕÒµ½ËüÃÇ¡£
ÔÚ Windows ÖУ¬Àà·¾¶ÖеĶà¸öÏîÊÇÓ÷ֺŷָô£¨ ;£ ......