Hi Steve,

I would argue that it's possible a "OOP" development without a OOP language.

The "OOP" development is in the mind of the developer.

Even the OOP languages make it easier, of course...

Cheers :-) ,

  Aitor.


On 11/23/2015 04:56 PM, Steve Litt <[email protected]> wrote:
I'd start out by saying that, in my opinion, OOP isn't the right
paradigm for every situation.

If you're talking about a picklist, where you display the picklist and
the user picks the desired item, then I think OOP is a pretty good
paradigm because it matches the data.

In this case, the picklist object has either an array of item objects or
a doubly linked list of item objects, as well as some metadata and a few
methods (probably implemented as contained pointers to functions.) If
you want the picklist sortable, the list must have a sort method. You
might also want to have a text trimming method so the text doesn't walk
off the end of the screen (a problem with CLI and Curses). The picklist
must also have properties relating keystrokes to functionalities, the
functionalities being "Choose", "Cancel", "Drill down", "Change",
"Delete", "Add". Not all functionalities are necessary on every list.

An item object contains the original data, a string representation
suitable for display, a unique identifier, and a distinct way to pass
back the unique ID of the chosen item. For instance, in some situations
you'd just return the unique identifier, in other situations you'd want
to print the to stdout. The conversion of the original item to a
display string is a pointer to a function taking a void pointer as an
argument, and returning a string, because the original data can be in
any conceivable form.

I'd*highly*  suggest you do not have any user interface information
within either the picklist class or the item class, for the same reason
you don't like systemd. Your software becomes a lot less pure and easy
to repair if you mix heavy lifting like the picklist with other,
unrelated heavy lifting like user interface. If the picklist and item
classes know nothing about the user interface, then you can use them
with*any*  user interface.

Of course, you'll eventually need the user to interact with your
picklist via a user interface. There are probably a million ways of
doing this. One way might be via two callback routines called acquire()
and display(), where acquire() acquires a piece of user input, and
display() displays a piece of output. Given the fact that picklist and
item should know nothing about the user interface, and the fact that C
makes you completely declare all types, these two callback functions
need to be declared pretty creatively to cover all scenarios.

HTH,

SteveT

_______________________________________________
Dng mailing list
[email protected]
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng

Reply via email to