2007年8月26日星期日

Lookup Library

翻译:http://openide.netbeans.org/lookup/
Lookup Library: 组件通信的解决方案
这是lookup库的实现主页,lookup主要目的是解决每个基于组件系统必须面对的问题:不同的组件如何注册到系统以及系统的其它部分如何找到它们。

已经有一些库试图解决该问题,通常这些库都是通过一个接口查询然后找到相关的实现。最出名的有jini,该平台主要用于分布式网络服务的开发。我们lookup库做类似的事件,但试图更小和更容易使用。NetBeans Lookup库主要专注于由互相独立的模块组成的模块化应用程序,这些模块需要彼此通信。Lookup库没有去试图解决网络或遗留系统的集成。Lookup简单但更有用。

为何你要用Lookup库?
一个写的好的模块程序分离了开发和部署。在许多情况下,一个组件需要一些功能但并不需要关心这些服务是如何实现的。由部署或安装应用程序的系统管理员去决定使用那个实现。
允许其他实现被插入的最简单和最常用的方法是系统属性模式:
    public Toolkit getDefaultToolkit () {
java.awt.Toolkit t = null;
String classname = System.getProperty ("java.awt.Toolkit");
if (classname != null) {
try {
Class c = Class.forName (classname);
t = (java.awt.Toolkit)c.newInstance ();
} catch (Exception ex) {
System.out.println ("Cannot initialize toolkit: " + classname);
ex.printStackTrace ();
}
}
// fallback
if (t == null) {
t = new GenericAWTToolkit ();
}
}
这个想法很简单。部署人员启动Java虚拟机时加上标记-Djava.awt.Toolkit=org.myorg.MyToolkit,这个类有缺省的构建器并且在getDefaultToolkit方法中的代码可以构建类的实例并能使用它。
从原理上,这个解决方案是足够通用且工作的很好,除了写上面的代码容易出错且执行时需要传送参数给虚拟机。如果仅仅将包含MyTookkit类的jar文件放到应用程序的classpath中就可完成注册登记会更好。
实际上这个已经被JDK的开发团队实际实现并作为JDK1.3提供者扩展机制的一部分。MyToolkit可以通过添加一个/META-INF/services/java.awt.Toolkit文件到包含MyToolkit实现的jar文件中完成注册,文件中包含一行org.myorg.MyToolkit的内容。getDefaultToolkit方法中的代码会扫描所有classpath中的JAR文件并搜索那个文件,创建MyToolkit实例,然后使用它。部署人员可以添加相应的JAR文件到classpath中来调整toolkit实例的创建。
当然代码访问META-INF/services/中的文件比属性模式更容易出错。那么这就是lookup库能助解决问题的地方。lookup库用一个简单的接口提供了一个搜索算法实现。只要如下写:
    import java.awt.Toolkit;
import org.openide.util.Lookup;;
Toolkit t = (Toolkit)Lookup.getDefault().lookup(Toolkit.class);

然后如果包含MyToolKit的JAR文件在classpath中,上面简单的调用就可完成剩下的工作。所以
无任何时,一个人写一个被分为几个独立模块的应用程序,模块的开发和部署又是独立的,都需
要注册和发现组件。首先,定义一套接口用于模块之间的通信(如java.awt.Toolkit抽象类)。
然后写一套模块具体提供实现(MyToolkit和其他一致的实现),然后,无任何时一个模块通
过lookup访问Toolkit想活动实际功能时,一个实际具体的实现会被返回。

找到一个服务请求的合适实现并返回一个实现服务的对象是lookup的职责。这是最基本的功
能,然而库为你提供了多一点,连这个简单用发也会非常有用:客户代码不知道有关实现相关
内容而且实现可以在部署时进行切换,只要简单替换具体的实现jar文件即可。其它代码不需要
修改。

本地lookup用法
待续。。。。。。



2007年8月25日星期六

Guitar訓練,7-基本練習 2007-08-25

類同:6-基本練習
a)P指練習 (同6一样)
I. 弦: 5 6 4 (練習方法:將右手從拿開方式開始,以正常的手型放到琴上、P指觸弦/離弦放松4次,然后在撥弦,然后離弦放送,然后將右手從琴上拿開,放松)
II. 4拍,弦: 5 6 4 ,練習方法雷同I,但改成撥弦/離弦放松4次,然后再從琴上拿開放松。
III. 4拍,弦:65456,練習方法雷同II,但是依次連續彈完5次再從琴上拿開放松。
IV. 3拍,弦:65456,練習方法雷同III,但每根弦上只彈3下
V. 2拍,弦:65456,練習方法同III,但沒根弦上只彈2下。
III、IV、V的訓練均需用節拍器,速度為90,100,110 撥弦+放送一拍

b) i m a指練習(同6一样)
I. 弦:3 ,練習順序:i,m,a,練習方法類同:a) I
II. 8拍,弦:3,練習順序:i,m,a,練習方法類同I,但撥弦次數為8次
III. 兩個8拍,弦:3,練習順序:im,mi,ma,am,ia,ai,練習方法雷同II,但改為兩個手指輪流撥弦

II、II的訓練均需用節拍器,速度90,100,110 撥弦+放松一拍

c)左手練習,在5弦上練習(同6一样)
I. 1次,把位從一品到十二品。按弦規則:
低把位往高把位移:12343434 12343434 12343434 .... ..
高把位往低把位移:43434321 43434321 43434321 ... ...
右手P指撥弦,使用節拍器,速度為96,104

II. 1次,把位從一品到十二品,類同I,但每次移兩格,移動時,注意手指按弦的連續性,在移動的食指/小指未按到弦時不允許釋放小指/食指。按弦規則:
低把位往高把位移:12343434 12343434 12343434 .... ..
高把位往低把位移:43434321 43434321 43434321 ... ...
右手P指撥弦,使用節拍器,速度為96,104


III. 1次,把位從一品到十二品,類同I,但每次移三格,移動時,注意手指按弦的連續性。按弦規則:
低把位往高把位移:12343434 12343434 12343434 .... ..
高把位往低把位移:43434321 43434321 43434321 ... ...
右手P指撥弦,使用節拍器,速度為96,104

IV. 1次,把位從一品到十二品,類同I,但每次交替按不同的弦,分別4/5, 5/6/, 4/6, 5/3 , 6/3,5/2 按弦規則:
低把位往高把位移:1234 1234 1234 .... ..
高把位往低把位移:4321 4321 4321 ... ...
右手P指撥弦,使用節拍器,速度為88

d)練習曲
I. 闪耀的星星 教材Page10,1=1/4拍,節拍器速度:120,132,144,160 三次
II. 右手练习 教材Page11,1=1/4拍,節拍器速度:160 指法:
im,mi,ma,am,ia,ai
III. 我怎能离开你 教材Page15,1=1/4拍,節拍器速度:120,132,144,160 兩次
IV. 阿瓜多练习曲 教材Page18,1=1/4拍,節拍器速度:96,104,112,120 三次

V. 雙音練習 教材Page20(A Study),1=1/4拍,節拍器速度:80三次

VI. 和弦圆舞曲 教材Page21,先预备练习三天,然后再全曲,节拍器速度:60 三次

VII. 右手练习 教材Page28、Page32、Page33 右手练习,靠弦,节拍器速度:80 三次
VIII. 音阶 教材Page26 im交替,不使用p指,靠弦,节拍器速度:66、72 三次

2007年8月11日星期六

Guitar訓練,6-基本練習 2007-08-11

類同:5-基本練習
a)P指練習
I. 弦: 5 6 4 (練習方法:將右手從拿開方式開始,以正常的手型放到琴上、P指觸弦/離弦放松4次,然后在撥弦,然后離弦放送,然后將右手從琴上拿開,放松)
II. 4拍,弦: 5 6 4 ,練習方法雷同I,但改成撥弦/離弦放松4次,然后再從琴上拿開放松。
III. 4拍,弦:65456,練習方法雷同II,但是依次連續彈完5次再從琴上拿開放松。
IV. 3拍,弦:65456,練習方法雷同III,但每根弦上只彈3下
V. 2拍,弦:65456,練習方法同III,但沒根弦上只彈2下。
III、IV、V的訓練均需用節拍器,速度為90,100,110 撥弦+放送一拍

b) i m a指練習
I. 弦:3 ,練習順序:i,m,a,練習方法類同:a) I
II. 8拍,弦:3,練習順序:i,m,a,練習方法類同I,但撥弦次數為8次
III. 兩個8拍,弦:3,練習順序:im,mi,ma,am,ia,ai,練習方法雷同II,但改為兩個手指輪流撥弦

II、II的訓練均需用節拍器,速度90,100,110 撥弦+放松一拍

c)左手練習,在5弦上練習
I. 1次,把位從一品到十二品。按弦規則:
低把位往高把位移:12343434 12343434 12343434 .... ..
高把位往低把位移:43434321 43434321 43434321 ... ...
右手P指撥弦,使用節拍器,速度為96, 104

II. 1次,把位從一品到十二品,類同I,但每次移兩格,移動時,注意手指按弦的連續性,在移動的食指/小指未按到弦時不允許釋放小指/食指。按弦規則:
低把位往高把位移:12343434 12343434 12343434 .... ..
高把位往低把位移:43434321 43434321 43434321 ... ...
右手P指撥弦,使用節拍器,速度為96, 104


III. 1次,把位從一品到十二品,類同I,但每次移三格,移動時,注意手指按弦的連續性。按弦規則:
低把位往高把位移:12343434 12343434 12343434 .... ..
高把位往低把位移:43434321 43434321 43434321 ... ...
右手P指撥弦,使用節拍器,速度為96,104

IV. 1次,把位從一品到十二品,類同I,但每次交替按不同的弦,分別4/5, 5/6/, 4/6, 5/3 , 6/3,5/2 按弦規則:
低把位往高把位移:1234 1234 1234 .... ..
高把位往低把位移:4321 4321 4321 ... ...
右手P指撥弦,使用節拍器,速度為88

d)練習曲
I. 闪耀的星星 教材Page10,1=1/4拍,節拍器速度:120,132,144,160 三次
II. 右手练习 教材Page11,1=1/4拍,節拍器速度:120 指法:
im,mi,ma,am,ia,ai
III. 我怎能离开你 教材Page15,1=1/4拍,節拍器速度:104,112,120 兩次
IV. 阿瓜多练习曲 教材Page18,1=1/4拍,節拍器速度:72, 88, 96 三次

V. 雙音練習 教材Page20(A Study),1=1/4拍,節拍器速度:66 三次

VI. 和弦圆舞曲 教材Page21,先预备练习三天,然后再全曲,节拍器速度:52