c# - Questions about IoC -


i studying high coupling between classes, ioc. ask questions:

  1. i using ninject; layer should put dlls ninject
  2. when create setup send client, dlls ninject go customer?
  3. i've been studying internet , came following conclusion: a. inversion of control when changed classes , not instance them within own class, passing parameters or using tools ninject b. dependency injection when add project interfaces rather concrete classes.

ad2. have add ninject dlls setup.

ad3. inversion of control (ioc) has nothing interfaces , classes. can have highly coupled code inversion of control.

class godclass {     void dosth(int param)     {         switch (param)         {            case 0: console.writeline("param 0"); break;            case 1: console.writeline("param 1"); break;         }     } } 

and ioc like:

class goodclass {      dictionary<int, baseclass> _consolewriters;       public goodclass( ienumerable<baseclass> writers )      {          foreach (var writer in writers)              _consolewriters.add( writer.paramsupported, writer);      }      void dosth(int param)      {          _consolewriters[ param ].dosth();      } }  abstract class baseclass {     abstract int paramsupported {get;}     abstract void dosth(int param); }  class zerowriter : baseclass {      override int paramsupported {get{return 0;}}      override dosth(int param) { console.writeline("param 0"); } }  class onewriter : baseclass {      override int paramsupported {get{return 1;}}      override dosth(int param) { console.writeline("param 1"); } } 

ad1. add ioc framework configuration/initialization in main function , pass reference initialized container rest of code.


Comments

Popular posts from this blog

apache - Add omitted ? to URLs -

redirect - bbPress Forum - rewrite to wwww.mysite prohibits login -

php - How can I stop spam on my custom forum/blog? -