utility | has definition A method or class that has wide applicability to many different subsystems and is designed to be reusable | ![2001-08-30 14:58:18.0](facet.gif) |
is a subtopic of 7.4 - The Basics of User Interface Design | ![2001-08-30 14:58:18.0](facet.gif) |
is a subtopic of 9.2 - Principles Leading to Good Design | ![2001-08-30 14:58:18.0](facet.gif) |
is a kind of class | ![2001-08-30 14:58:18.0](facet.gif) |
is a kind of method | ![2001-08-30 14:58:18.0](facet.gif) |
see also utility^2 | ![2001-08-30 14:58:18.0](facet.gif) |
method | is equivalent to the terms "function member" or "member function" which are used in C++ | ![2001-08-30 14:56:35.0](facet.gif) |
is equivalent to the terms "routine", "function" or "procedure" which are used in non object oriented languages | ![2001-08-30 14:56:35.0](facet.gif) |
should have a comment at its head if the method is non-obvious | ![2001-08-30 14:56:35.0](facet.gif) |
class | can have instances | ![2001-08-30 14:54:50.0](facet.gif) |
contains all of the code that relates to its objects including - code describing how the objects of the class are structured - i.e. the data stored in each object that implement the properties
- The procedures, called methods, that implement the behaviour of the objects
| ![2001-08-30 14:54:50.0](facet.gif) |
contains data associated with each object | ![2001-08-30 14:54:50.0](facet.gif) |
declares a list of variables, called instance variables, corresponding to data that will be present in each instance | ![2001-08-30 14:54:50.0](facet.gif) |
has part class name | ![2001-08-30 14:54:50.0](facet.gif) |
has part class variable | ![2001-08-30 14:54:50.0](facet.gif) |
has part code | ![2001-08-30 14:54:50.0](facet.gif) |
has part constructor | ![2001-08-30 14:54:50.0](facet.gif) |
has part instance variable | ![2001-08-30 14:54:50.0](facet.gif) |
has part method | ![2001-08-30 14:54:51.0](facet.gif) |
has part variables | ![2001-08-30 14:54:51.0](facet.gif) |
is an abstract representation of all the instances of that class that may ever exist | ![2001-08-30 14:54:51.0](facet.gif) |
is probably useless if it has no responsibilities attached to it | ![2001-08-30 14:54:51.0](facet.gif) |
is the unit of data abstraction in an object-oriented program | ![2001-08-30 14:54:51.0](facet.gif) |
is divided up into methods | ![2001-08-30 14:54:51.0](facet.gif) |
is drawn as a box with the name of the class inside in a UML class diagram | ![2001-08-30 14:54:51.0](facet.gif) |
is needed in a domain model if you have to store or manipulate instances of it in order to implement a requirement | ![2001-08-30 14:54:51.0](facet.gif) |
represents several similar objects | ![2001-08-30 14:54:51.0](facet.gif) |
should be created to hold a responsibility if the responsibility cannot be attributed to any of the existing classes | ![2001-08-30 14:54:51.0](facet.gif) |
should be named after things their instances represent in the real world | ![2001-08-30 14:54:51.0](facet.gif) |
should have a comment at the top describing the purpose of the class, how it should be used, its authors and its history of modification | ![2001-08-30 14:54:51.0](facet.gif) |
should not be named after the internals of a computer system such as 'Record', 'Table', 'Data', 'Structure', or 'Information' | ![2001-08-30 14:54:51.0](facet.gif) |
procedural abstraction | has advantage when using a certain procedure, a programmer does not need to worry about all the details of how it performs its computations; he or she only needs to know how to call it and what it computes | ![2001-08-30 14:57:04.0](facet.gif) |
hides the details of procedures | ![2001-08-30 14:57:04.0](facet.gif) |
procedure | provides procedural abstraction | ![2001-08-30 14:57:04.0](facet.gif) |
data abstraction | groups the pieces of data that describe some entity, so that programmers can manipulate that data as a unit | ![2001-08-30 14:55:09.0](facet.gif) |
helps a programmer to cope with the complexity of data | ![2001-08-30 14:55:09.0](facet.gif) |
hides the details of data | ![2001-08-30 14:55:09.0](facet.gif) |