單一的代碼庫是函數調用的一個邏輯上的組合,它們按照與操作系統有關的機器代碼的方式打包到一個可鏈接的文件上。在Java中,庫可能是以打包到一個JAR文件一組靜態方法的形式存在的。由于這些函數調用或者靜態方法對它們所處的環境一無所知,所以它們一般不能維護(與調用它們的客戶代碼有關的)任何一種狀態。例如,Java中的代碼庫(打包為一組靜態方法),看上去可能向代碼清單A所示。 清單A如下: Listing A
public class SystemLib { public static Date getDateTime() { return new Date(); } public static String getOSVersion() { return System.get 對象把狀態和功能封裝當邏輯單元之中。一個或者多個客戶可以分享同一個對象。對象一般可以提供其中某些狀態數據以及適當的操作。代碼清單B給出了一個表示個人信息的Java對象。 代碼清單B如下: Listing B
public class Person { protected String name; protected int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } public String toString() { return "Name: " + name + ", Age: " + age; } }