我學習使用java的一點體會(5) (轉)
這篇文章仍然是對《我學習使用的一點體會(3)》的補充。
我使用java開發一年多,使用的應該還算熟練,最近在閱讀《設計》和《Effective Java》時,又重新學了一下java的基本類庫,對思想有了新的認識。java的基本類庫是由專家設計的,理解基本類庫一方面可以增加自己的開發,另外一方面可以學學專家的設計思路。在java的基本類庫中,使用了很多的設計模式,在很多方面提供擴充套件機制,方便的支援設計模式。可以說java的基礎類庫,將面向設計的Open-Close principle (Software entities should be open for extension,but closed for modification)發揮到了極致。
在java的基礎類庫中,有些類設計的是為了給java開發者提供工具,直接讓開發者使用的,有些類是專門為繼承而設計的。對於第一種型別的類,使用整合開發工具很容易就能上手使用,而對於第二種型別的類,不主動去學它的,很難掌握它的使用。我舉一個例子。java 2 提供了對模式的支援,在以下示例中,演示瞭如何使用模式(摘自《java與模式》)。主要體會java.lang.reflect.InvocationHandler的用法
package com.javapatterns.proxy.reflect;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Proxy;
import java.lang.reflect.Method;
import java.util.Vector;
import java.util.List;
public class VectorProxy implements InvocationHandler
{
private proxyobj;
/** @link dependency */
/*#Proxy lnkProxy;*/
public VectorProxy(Object obj)
{
proxyobj = obj;
}
public static Object factory(Object obj)
{
Class cls = obj.getClass();
return Proxy.newProxyInstance( cls.getClaoader(),
cls.getInterfaces(),
new VectorProxy(obj) );
}
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
{
System.out.println("before calling " + method);
if (args != null)
{
for (int i=0; i
System.out.println(args[i] + "");
}
}
Object o = method.invoke(proxyobj, args);
System.out.println("after calling " + method);
return o;
}
public static void main(String[] args)
{
List v = null;
v = (List) factory(new Vector(10));
v.add("New");
v.add("York");
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-962529/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 我學習使用java的一點體會 (轉)Java
- 我學習使用java的一點體會(2) (轉)Java
- 我學習使用java的一點體會(3) (轉)Java
- 我學習使用java的一點體會(4) (轉)Java
- 我學習使用java的一點體會(8) (轉)Java
- 我的一點學習經驗 (轉)
- 學習ASP.NET的體會(一) (轉)ASP.NET
- Java學習過程的一些重點(轉)Java
- 我這幾年程式設計師生涯的一點體會(轉)程式設計師
- 學習java一定會用到的應用軟體Java
- 使用Immutable js的一點體會JS
- 我求職的體會 (轉)求職
- 使用Rust的幾點理由,加入我們,一起學習!Rust
- 我對ORACLE資料鎖的一點體會Oracle
- 學習“5S”管理心得體會
- 學習EJB CMP/CMR 的心得體會 (轉)
- 轉行Java能學會嗎?零基礎學習Java的學習路線Java
- Java學習筆記--我的第一個Java程式Java筆記
- 對軟體開發的一點心得體會 (轉)
- Java隨筆-Java泛型的一點學習Java泛型
- java學習總結及心得體會Java
- 個人學習SMC的一點體會--回答dREAMhTEATER兄 (2千字)
- 介面和抽象類使用的一點體會抽象
- python學習心得體會(一)Python
- 一點看法, 一點體會 -- 國外與國內,數學與計算機 (轉)計算機
- 最近學習的體會
- 在VB應用程式中使用INI檔案的一點體會 (轉)
- 我的C學習之路 (轉)
- 學習專案管理理論後的體會(轉)專案管理
- 學習專案管理理論後的體會 (轉)專案管理
- 專案進度控制學習體會(轉)
- oracle的學習方法——關於測試的兩點體會Oracle
- 關於專案管理的一點體會-轉載專案管理
- 入門教程的一些學習體會
- java學習歷程——第一篇.如何使用java軟體Java
- 我是一個高中生學習Java?Java
- 學習Spring的體會Spring
- 我的Java後端學習之路Java後端