ridioc core

ridioc - ridiculously small inversion of control for Java

Лицензия

Лицензия

Группа

Группа

ch.dkitc
Идентификатор

Идентификатор

ridioc-core
Последняя версия

Последняя версия

0.1
Дата

Дата

Тип

Тип

jar
Описание

Описание

ridioc core
ridioc - ridiculously small inversion of control for Java
Ссылка на сайт

Ссылка на сайт

https://github.com/diegolin/ridioc
Система контроля версий

Система контроля версий

https://github.com/diegolin/ridioc

Скачать ridioc-core

Как подключить последнюю версию

<!-- https://jarcasting.com/artifacts/ch.dkitc/ridioc-core/ -->
<dependency>
    <groupId>ch.dkitc</groupId>
    <artifactId>ridioc-core</artifactId>
    <version>0.1</version>
</dependency>
// https://jarcasting.com/artifacts/ch.dkitc/ridioc-core/
implementation 'ch.dkitc:ridioc-core:0.1'
// https://jarcasting.com/artifacts/ch.dkitc/ridioc-core/
implementation ("ch.dkitc:ridioc-core:0.1")
'ch.dkitc:ridioc-core:jar:0.1'
<dependency org="ch.dkitc" name="ridioc-core" rev="0.1">
  <artifact name="ridioc-core" type="jar" />
</dependency>
@Grapes(
@Grab(group='ch.dkitc', module='ridioc-core', version='0.1')
)
libraryDependencies += "ch.dkitc" % "ridioc-core" % "0.1"
[ch.dkitc/ridioc-core "0.1"]

Зависимости

compile (3)

Идентификатор библиотеки Тип Версия
org.reflections : reflections jar 0.9.9-RC1
com.thoughtworks.paranamer : paranamer jar 2.6
junit : junit jar 4.11

Модули Проекта

Данный проект не имеет модулей.

ridioc - ridiculously small inversion of control for Java

Intro

For maven projects just add this dependency:

<dependency>
  <groupId>ch.dkitc</groupId>
  <artifactId>ridioc-core</artifactId>
  <version>0.1</version>
</dependency>

Usage

Say you have these interfaces and their single implementation classes:

public interface UberService { void executeUberService(); }
public interface FirstService { void executeFirstService(); }
public interface SecondService { void executeSecondService(); }
public interface ThirdService { void executeThirdService(); }
public interface MicroService { void executeMicroService(); }
public interface NanoService { void executeNanoService(); }
public interface PicoService { void executePicoService(); }

...
public class UberServiceImpl implements UberService {
    private final FirstService first;
    private final SecondService second;
    private final ThirdService third;
    public UberServiceImpl(FirstService first, SecondService second, ThirdService third) { ... }
    @Override public void executeUberService() {...}
}
...
public class FirstServiceImpl implements FirstService {
    private final MicroService microService;
    public FirstServiceImpl(MicroService microService) { ... }
    @Override public void executeFirstService() { ...  }
}
...
public class SecondServiceImpl implements SecondService {
    private final NanoService nano;
    public SecondServiceImpl(NanoService nano) { ... }
    @Override public void executeSecondService() { ... }
}
...
public class ThirdServiceImpl implements ThirdService {
    private final PicoService pico;
    public ThirdServiceImpl(PicoService picoService) { ... }
    @Override public void executeThirdService() { ... }
}
...
public class MicroServiceImpl implements MicroService {
    private final NanoService nano;
    public MicroServiceImpl(NanoService nano) { ... }
    @Override public void executeMicroService() { ... }
}
...
public class NanoServiceImpl implements NanoService {
    private final PicoService pico;
    public NanoServiceImpl(PicoService pico) { ...  }
    @Override
    public void executeNanoService() { ... }
}
...
public class PicoServiceImpl implements PicoService {
    public PicoServiceImpl() {}
    @Override
    public void executePicoService() { ... }
}

Now, to access an instance of type UberInterface, you can do this:

public class Example {
    public static final String PACKAGE_PREFIX = Example.class.getPackage().getName();
    public static void main(String[] args) {
        DIObjectFactory objectFactory = DI.createObjectFactory(DIObjectFactory.class, PACKAGE_PREFIX);
        UberService uberService = objectFactory.instance(UberService.class);
        uberService.executeUberService();
    }
}

Credits

Built upon

Tested using

License

[LGPL] (https://www.gnu.org/copyleft/lesser.html)

About me

Версии библиотеки

Версия
0.1