|Bookshelf Home | Contents | Index | PDF|
A product or service can be thought of as a collection of physical features and characteristics. Color, size, manufacturer, capacity, voltage, license type, expiration period, interest rate, and height are just a few of these. Those characteristics needed to describe your product meaningfully for your customers are called product attributes.
Classes provide a way to organize and administer product attributes. The key to understanding classes is inheritance. Attributes defined at the class level are automatically inherited by all the class members. When you assign a product to a class, it automatically inherits all the attributes defined for that class. Classes let you define what attributes are maintained for products, propagate those attributes to the products, and maintain those attributes in a consistent fashion.
When you define an attribute for a class, you specify both the attribute name and the range of values that the attribute can have. This range of values is called the attribute domain. For example, for a class called blanket, you define an attribute called color and define its domain to be green, red, and blue. Every blanket you assign to this class inherits the attribute color and its possible values.
The class hierarchy is a mechanism for organizing and managing product attributes. It is separate from the mechanisms you use to organize products themselves, such as product lines and product categories.
For example, you have the class hierarchy in Figure 1. The product class called Class has two attributes defined on it, Attribute 1 and Attribute 2. Class also has a subclass called Subclass. Subclass has Attribute 3 defined on it and contains one product, called Product C.
When you define a customizable product, you define named parts called relationships. Then you add the contents of classes to them. Adding a small number of products to a relationship from a large product class requires that the entire class be searched each time the customizable product is instantiated. This can adversely affect performance. Consider defining the class system to avoid this.
|Product Administration Guide|