Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p><strong>Don't start out by classifying things</strong> - seems like people are too eager to start building inheritance hierarchies. </p> <p><strong>write down a list of specific, concrete scenarios</strong> - what your app will do, step by step. An object model is only useful if it does what you need it to do - so start working back from the scenarios to see what common objects and behaviours you can shake out of each one.</p> <p><strong>identify the "roles" in your scenarios</strong> - not necessarily actual class names - just vague "roles" that turn up when you think through concrete scenarios for how your software will work. These roles might later become classes, interfaces, abstract classes - whatever you need - at the start they're just placeholders for doing a type of work.</p> <p><strong>Work out what each role "does".</strong> The key is having a bunch of named roles - that identify things that the objects will do. Thins is about distilling out a set of things each role can do - they might do the whole thing, or put together a bunch of other objects to do the work, or they might co-ordinate the work... it depends on your scenarios.</p> <p><strong>The most important thing in OOD/OOP - is OBJECTS DO THINGS</strong> - not what's inside them - what they do.</p> <p><strong>Don't think about inheritance early on</strong> - because it will tie you up in overcomplicated hierarchies and make you think in terms of SQL-oriented programming rather than object-oriented programming. Inheritance is just one way of sharing common code. There are lots of other ways - delegation, mixins, prototype-based programming... </p> <p>Here are some guidelines I came up with to help with this:</p> <p><a href="https://stackoverflow.com/questions/915649/what-should-be-on-a-checklist-that-would-help-someone-develop-good-oo-software/1647588#1647588">What should be on a checklist that would help someone develop good OO software?</a></p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload