[Seasar-user:10821] [S2Container]共通のinterfaceを利用するクラスをSMART Deploy環境で実装する一般的な方法

nobu [E-MAIL ADDRESS DELETED]
2007年 10月 2日 (火) 12:08:06 JST


近藤(nobu)です。

初歩的な質問かもしれませんが、Seasar2.4のSMART Deploy環境にて、共通の
interfaceを使用する複数のクラスを使用する一般的な方法はどのようなもの
でしょうか?

以下の例のようなクラスがあるとして、

■例
・インターフェース
public interface hoge
{
  String sayHello;
}

・クラスA
public class hogeEnglishImpl implements hoge
{
  public String sayHello()
  {
    return "Hello";
  }
}

・クラスB
public class hogeJapaneseImpl implements hoge
{
  public String sayHello()
  {
    return "こんにちわ";
  }
}

これをコンテナから取得する際に、このときにS2Containerを使用して
hogeEnglishImplのインスタンスを取得する方法がわかりません。
Seasarの環境では、interface-Classが1:1で動作すると思っていますので
hogeEnglishというinterfaceを用意しなければならないと思っています。
で、今やっている方法が、hogeを継承したhogeEnglish/hogeJapaneseという
interfaceを作成し、Implにはそれぞれを実装させています。

■今のやり方
・インターフェース
public interface hoge
{
  String sayHello;
}

・インターフェースhogeEnglish
public interface hogeEnglish implements hoge
{
}

・インターフェースhogeJapanese
public interface hogeJapanese implements hoge
{
}


・クラスA
public class hogeEnglishImpl implements hogeEnglish
{
  public String sayHello()
  {
    return "Hello";
  }
}

・クラスB
public class hogeJapaneseImpl implements hogeJapanese
{
  public String sayHello()
  {
    return "こんにちわ";
  }
}

この方法しか思い付かなかったのですが、例えばdiconの設定
等で他に対処する方法がありました教えてください。

以上、よろしくお願い致します。



Seasar-user メーリングリストの案内