vb.net - Creating 2 DLLs sharing an Interface on Visual Basic, is it possible/good idea? -


i'm designing visual basic application on uses 1 dll created me (both on visual studio). in app, there's object instantiates 1 class defined dll.

friend withevents robot new dll1class 

there new needs on project object should able instantiate 1 class different new dll. since designing new dll, want make change transparent app, same me do:

friend withevents robot new dll1class 

or

friend withevents robot new dll2class 

my idea create interface ioperations , make 2 dlls implement it, there no problems on code.

since need instantiate object during runtime, question is, class should create with?

friend withevents robot ¿?¿?¿? ' ... if xxxxx     robot = new dllxclass end if 

i don't want use as object because during programming not see list of functions when write robot. , code , dll functions complex accept this.

is there way can define object implements interface? similar idea:

friend withevents robot classx "that implements ioperations" 

if think there better way afford problem it's ok me! since think question make: yes, necessary use dlls because need send them external people use dll on own applications.

you need declare variable interface rather 1 of concrete classes, instance:

friend withevents robot ioperations 

now, robot variable can reference object of type happens implement interface. next, need conditionally set robot variable correct type of object depending on situation. instance, in constructor, this:

if usingdll1     robot = new dll1class() else     robot = new dll2class() end if 

as long both of classes implement iopertions interface, compile , work correctly.

rant

now it's time di rant. if don't care think, skip part :)

having class create own dependencies bad practice. project grows, become more , more complicated , lead spaghetti-code. way avoid use dependency-injection (di). instance, in case, design class this:

public class myclass     public sub new(robot ioperations)         me.robot = robot     end sub      friend withevents robot ioperations end class 

now, rather creating it's own robot object, class requests robot given it. in way, it's dependency (the robot) injected it.

think of way: if have car class, should create it's own engine object? in real life, car create it's own engine, or given 1 car factory? creating car can create it's own engine complicated , silly, having classes create own dependencies complicated , silly.


Comments

Popular posts from this blog

monitor web browser programmatically in Android? -

Shrink a YouTube video to responsive width -

wpf - PdfWriter.GetInstance throws System.NullReferenceException -