1.パッケージ構成とファイル構成
1.1.パッケージ構成
Okapi Project 内で利用する Java プログラムでのパッケージ構成を以下のように定めます。パッケージ構成は一般的に利用されているドメイン名の逆順を利用することで世界的に一意のパッケージ構成となることを目的としています。
表1.Okapi Project パッケージ構成
第 1 階層 | 第 2 階層 | 第 3 階層 | 第 4 階層 | 第 5 階層 | 第 6 階層 | 内容 |
com | okapiproject | framework | | | | 各アプリケーションが import するフレームワークのパッケージ。 |
| | core | | | | X-Framework のコア・パッケージ。フレームワークのソースはこのパッケージに含まれます。 |
| | | main | | | X-Framework のメインパッケージ。サーブレットなど制御系のソースが含まれます。 |
| | | filter | | | X-Framework のフィルタ関連のソースを含むパッケージ。 |
| | common | | | | 全パッケージ間で共通的に利用されるパッケージ。 |
| | | check | | | チェック系プログラムの格納パッケージ。 |
| | | conv | | | 変換系プログラムの格納パッケージ。 |
| | | util | | | ユーティリティ系プログラムのパッケージ。 |
| | dao | | | | DAO の格納パッケージ。 |
| | | adapter | | | DAO を利用する際に利用側とのインターフェースに使うパッケージ。 |
| | | base | | | DAO の本体が格納されるパッケージ。 |
| | | pool | | | コネクションプーリングに関するプログラムが格納されるパッケージ。 |
| | | daoutil | | | DAO 内のみで利用されるユーティリティパッケージ。 |
| | | xml | | | XML を読み込むためのパッケージ。 |
| | | file | | | ファイルアクセス関連のソースが格納されるパッケージ。 |
| | application | | | | Okapi Project のサブプロジェクトである Web アプリケーションのパッケージ。 |
| | | nippo | | | Nippo プロジェクトのソースが格納されているパッケージ。 |
| | | learn3ed | | | Learn3ed プロジェクトのソースが格納されているパッケージ。 |
| | test | | | | JUnit のテストクラスを格納するパッケージ。 |
1.2.ファイル構成
ファイル構成は次のように定めます。
1.2.1.ファイル名
まず、Java 言語によるプログラムの構成要素であるクラスとソースファイルの対応については、Java 言語の標準的な扱いに従い、以下のように定めます。
public クラスはそのクラスと同名のひとつのファイルにする。
基本的には「
1 クラス 1 ファイル」という原則に基づきます。以下に例を示します。
public class DateEdit {
public static void main(String[] args){
System.out.println("Hello, World !");
}
}
上記クラスは DataEdit というクラスであるため、DataEdit.java というファイルに格納されている必要があります。
ただし、この規則には例外が存在します。インナクラスと呼ばれる、public にしないで利用するクラスなどについては「
1 ファイル複数クラス」が成り立ちます。この場合、クラスのアクセス修飾子を public にしないことでひとつのファイルに複数のクラスを格納することが許されます。
この場合、コンパイルしたときに .java ファイルと .class ファイルとが 1 対 1 で対応しません。内部に含まれるクラスの数だけ .class ファイルが生成されます。
1.2.2.ファイルの位置
Java 言語のプログラムソースを格納する場所は、1.1 にて定めたパッケージ構成をそのままフォルダ構成としてソースファイルを格納します。以下に例を示します。
DateEdit クラスがパッケージ com.okapiproject.common.util に含まれる場合のファイル格納先は以下のようになります。
【Windows 環境の場合】
プロジェクトルート(任意)が C:\okapi であった場合、
C:\okapi\com\okapiproject\common\util\DateEdit.java
となります。
【Unix 系 OS 環境の場合】
プロジェクトルート(任意)が /home/okapi であった場合、
/home/okapi/com/okapiproject/common/util/DateEdit.java
となります。