2

研究プロジェクトでPicocontainerを使用しています。使い方に疑問があります。

以下は私が持っているクラスです:

public class DependencySupplier {

    public static MutablePicoContainer pico;

    static {
        pico = new DefaultPicoContainer();
        pico.registerComponentImplementation(CollectionDao.class, CollectionDaoImpl.class);
        pico.registerComponentImplementation(ReadingDao.class, ReadingDaoImpl.class);
        pico.registerComponentImplementation(CollectionDetails.class, CollectionDetailsImpl.class);
        pico.registerComponentImplementation(Reading.class, ReadingImpl.class);
    }

    public static CollectionDao getCollectionDao() {
        return (CollectionDao) pico.getComponentInstance(CollectionDao.class);
    }

    public static ReadingDao getReadingDao() {
        return (ReadingDao) pico.getComponentInstance(ReadingDao.class);
        }   
    }

私の疑問は次のとおりです。

  1. これは pico を使用する正しい方法ですか?
  2. AddressImpl クラスは次のとおりです。

    public class AddressImpl implements Address {
    
        private String address1;
        private String address2;
        private String address3;
        private String address4;
    
        public AddressImpl(String address1, String address2, String address3,
            String address4) {
            super();
            this.address1 = address1;
            this.address2 = address2;
        }
    
        public String getAddress1() {
            return address1;
        }
        public void setAddress1(String address1) {
            this.address1 = address1;
        }
        public String getAddress2() {
            return address2;
        }
        public void setAddress2(String address2) {
            this.address2 = address2;
        }
        public String getAddress3() {
            return address3;
        }
    }
    

「address1」と「address2」はユーザーが提供する必要があり、実行時に使用できるため、上記の実装で Address オブジェクトをインスタンス化するにはどうすればよいですか?

4

1 に答える 1