Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #23508

Re: DI/wiring

From markspace <markspace@nospam.nospam>
Newsgroups comp.lang.java.programmer
Subject Re: DI/wiring
Date 2013-04-18 12:16 -0700
Organization A noiseless patient Spider
Message-ID <kkpgls$6aq$1@dont-email.me> (permalink)
References <DI-wiring-20130418174944@ram.dialup.fu-berlin.de>

Show all headers | View raw


On 4/18/2013 9:03 AM, Stefan Ram wrote:
>    I have »invented« myself something that also seems to be
>    known as »dependency injection« or »wiring«. I am doing it

I should have a look at Joerg's answer myself, but here's another idea.

Make an app context object that holds the state of your app.

class Context {
   Engine getEngine()....
   Printer getPrinter()...
}

Inject that into submodules in the code.  Submodules are larger than 
classes and can treat the context as immutable.  The context then 
becomes global but only for that module.  The idea is that you still get 
dependency injecting, but you can still test reasonably as well.

class SomeConfig {
   Context context;
   public SomeConfig( Context c ) { context = c; }

   public init() {
    Component c0 = new Component( context );

...
   }
}

class Component  {
   Context context;...
   public printIt() {
     context.getPrinter().do something...
   }
}

This reduces boilerplate but doesn't eliminate it.  For some projects it 
might be better to get a real dependency injection framework.




Back to comp.lang.java.programmer | Previous | NextNext in thread | Find similar | Unroll thread


Thread

Re: DI/wiring markspace <markspace@nospam.nospam> - 2013-04-18 12:16 -0700
  Re: DI/wiring Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2013-04-22 09:03 +0200
    Re: DI/wiring markspace <markspace@nospam.nospam> - 2013-04-22 10:59 -0700
      Re: DI/wiring Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2013-04-24 06:37 +0200
      Re: DI/wiring Arved Sandstrom <asandstrom2@eastlink.ca> - 2013-04-24 10:28 -0300

csiph-web