Jump to content

I don't respect Liskov principle and I dind't found satisfying issue...


Recommended Posts

Hi, 

I learned LVOOP in a way that doesn't satisfy me anymore and I would like to improve my designs.

One of my personnal project is a MenuBurger class using picture and dynamic launching VI.

This one, I would like to share with the community one day but there some probleme rely on the design...

This is a very simple explanation using UML about how it's works :

image.png.8c1bb184b84d5d62f6db571ce4c3aa5c.png

(I want it to be compatible for earliers LabVIEW version so it's ok to not use the Interfaces that ship with LabVIEW 2020)

The idea is to have an MenuBurger API that manage interactions between the user and the menu (A picture control) and call a Button API (Image to be display in the picture).

To be extendable and modular for an end user, we can derive an existing button class to customize it (Adding some decoration, color gradient, etc...) by overriding the create method.
And I would like that be dynamic using factory pattern :

image.png.da68aedf84aedfcb53bbdac10c4272bd.png

 

For my own use, I know the rules for using it so it's ok but I'm not satisfy of this design to share it with the community.

Using dependancy inversion and passing the object just move the probleme. I still have to manage different configuration.

Have a big configuration cluster to handle all case is not admissible, this is not easely maintainable and extendable and this more confusing for a developper...

Is it an abstraction problem ? But I like the idea to have a button base class that handle the common functionalities...

I don't know what to do to make this tool good enough to be shared.

I'll be glad to have any advice !

 

Loïc

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.