Okapi Project

パッケージ構成

バージョン
2003 年 10 月 25 日 Ver.1.0
作成者
T.Itoh ( Xware )

要約

Java 言語を使ってプログラムを作るとき、最初に考えなくてはいけないのがパッケージ構成です。ここでは Okapi Project が実際に利用しているパッケージ構成についてご紹介します。

目次


1.パッケージ構成とファイル構成

1.1.パッケージ構成

Okapi Project 内で利用する Java プログラムでのパッケージ構成を以下のように定めます。パッケージ構成は一般的に利用されているドメイン名の逆順を利用することで世界的に一意のパッケージ構成となることを目的としています。
表1.Okapi Project パッケージ構成
第 1 階層第 2 階層第 3 階層第 4 階層第 5 階層第 6 階層内容
comokapiprojectframework各アプリケーションが import するフレームワークのパッケージ。
coreX-Framework のコア・パッケージ。フレームワークのソースはこのパッケージに含まれます。
mainX-Framework のメインパッケージ。サーブレットなど制御系のソースが含まれます。
filterX-Framework のフィルタ関連のソースを含むパッケージ。
common全パッケージ間で共通的に利用されるパッケージ。
checkチェック系プログラムの格納パッケージ。
conv変換系プログラムの格納パッケージ。
utilユーティリティ系プログラムのパッケージ。
daoDAO の格納パッケージ。
adapterDAO を利用する際に利用側とのインターフェースに使うパッケージ。
baseDAO の本体が格納されるパッケージ。
poolコネクションプーリングに関するプログラムが格納されるパッケージ。
daoutilDAO 内のみで利用されるユーティリティパッケージ。
xmlXML を読み込むためのパッケージ。
fileファイルアクセス関連のソースが格納されるパッケージ。
applicationOkapi Project のサブプロジェクトである Web アプリケーションのパッケージ。
nippoNippo プロジェクトのソースが格納されているパッケージ。
learn3edLearn3ed プロジェクトのソースが格納されているパッケージ。
testJUnit のテストクラスを格納するパッケージ。

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
となります。

Copyright © 2003 - 2006 Okapi Project All Rights Reserved.