CLASS MODEL BROWSER The upper pane in the class model is the class model browser, as shown in Figure 14 - 5.. 292 ❘ CHAPTER 14 CLASS MODELINGThe list options for the members list lets yo
Trang 1CLASS MODEL BROWSER
The upper pane in the class model is the class model browser, as shown in Figure 14 - 5 On the left is the list of classes being tracked by the model Selecting a class displays the class ’ s members
in the middle list Selecting an item in either list displays additional information about that item in the details pane on the right You can use the dividers between these sections to resize them, within limits
FIGURE 14 - 5
To avoid any confusion, the term “class browser,” or just “browser,” in this chapter refers to the class model browser, not the class browser discussed in Chapter 9
Class modeling can be used to model C++, Java, and Objective - C classes The terminology used in class modeling tends to be neutral:
Properties refer to instance or member variables of a class
Operations refer to class methods, functions, or messages
Protocols refer to either Objective - C protocols or Java interfaces
Categories are Objective - C categories
Packages are Java packages
Not all modeling concepts apply to all languages Categories only appear when modeling Objective - C classes Package names only appear when you ’ re modeling Java classes Multiple - inheritance can only occur with C++ classes
You can customize the browser display a number of different ways In the lower - left corner of both the class and member lists is a pop - up menu that will alter a list ’ s display The choices for the class list, shown on the left in Figure 14 - 6, are Flat List and Inheritance Tree Flat List lists all of the classes alphabetically Inheritance Tree lists the classes in a hierarchical browser
➤
➤
➤
➤
➤
Trang 2292 ❘ CHAPTER 14 CLASS MODELING
The list options for the members list lets you select between Show All Members, Show Properties,
and Show Operations
You can resize and reorder the columns for both lists as desired by dragging the column separators
or headers Right/Control - click the column titles to control which columns the list displays, also
shown in Figure 14 - 6 Check only those columns you want to see The menu for both lists includes
a Show All Columns command
CLASS MODEL DIAGRAM
In the lower portion of the pane is the class diagram, as shown in Figure 14 - 7, and is class
modeling ’ s raison d ’ ê tre The diagram presents a graphic visualization of the class relationships
Note that the browser and diagram show much of the same information, just in different ways
FIGURE 14 - 6
FIGURE 14 - 7
Trang 3The entire class model diagram is contained on a variable number of pages that look like graph paper The number of pages automatically expands to encompass the diagram
Nodes
Entities in a class model diagram are represented as nodes At the top of each node is its title Nodes may optionally show additional detail — quite a bit of detail, if you like The form and color of the title indicate its type, as listed in the following table:
< TitleInBrackets > Red Objective - C protocol or Java interface (TitleInParentheses) Green Objective - C category
The background color of framework classes is darker than that of classes defi ned in your application
Lines between nodes denote inheritance The arrow points to the superclass, interface, or category from which the node inherits, conforms, or extends The possible combination of arrows and lines is listed in the following table:
LINE AND ARROW T YPE REL ATIONSHIP
Solid line with an open arrow Points to the superclass or category that the class inherits Dashed line with an open arrow Points to the interface or protocol that the class adopts Solid line with no arrow Indicates an attached annotation node
The compartments below the title detail the members of the class The Properties member lists the instance variables and the Operations member lists the methods or functions You can completely hide these details by “ rolling up ” the node, and reveal them again by rolling them down
You accomplish this by using the Design ➪ Roll Up Compartments and Design ➪ Roll Down Compartments commands The command applies to the currently selected node or nodes You can also access those same commands by Right/Control+clicking selected nodes If no nodes are selected, the commands change to Roll Up All and Roll Down All
The lists within the compartments can be individually expanded or collapsed by clicking the disclosure triangle to the left of the compartment title To collapse or expand all the compartments
Trang 4294 ❘CHAPTER 14 CLASS MODELING
The members of a class may optionally display
their visibility (private, protected, or public), type,
return type, or method parameters All of these display
options are set in the General tab of the diagram ’ s Info
window With the selection tool, click anywhere on
the background of the diagram so that no nodes are
selected, and then choose File ➪ Get Info (Command+I)
Switch to the General tab and the various display
options appear at the top of the window, as shown in
Figure 14 - 9
The Show Visibility option refers to the scope or
accessibility of class members, indicated by a small
icon next to each member The possibilities are as
follows:
VISIBILIT Y/SCOPE SYMBOL
Private red circle
Package orange triangle (pointing down)
Protected yellow triangle (pointing up)
Public green square
FIGURE 14-8
FIGURE 14-9
at once, select a node or nodes and choose either the Design ➪ Collapse Compartments or Design ➪
Expand Compartments command When no nodes are selected, the commands change to
Design ➪ Collapse All and Design ➪ Expand All Figure 14 - 8 shows a variety of node states:
the categories on the left have been rolled up, the classes have been selectively expanded, and the
categories on the right have been fully expanded
Trang 5The Show Property Type option includes the variable type after each class property Show Operation Return Type shows the return value type of each operation This may appear before or after the operation name, depending on the language being modeled The Show Operation Parameter List option includes the entire parameter list of each operation, and can make for some very wide class nodes
The Show Package option applies only to Java If you select this option, the package name appears below the name of the class or interface in the node ’ s title compartment
Figure 14 - 10 shows a diagram with all the display options turned on (left) and off (right) Static, also known as class, operations are underlined This is one display option that is not customizable
FIGURE 14-10
Tools
Five tools, listed in the following table, are displayed in the palette in the lower - left corner of the class diagram To use a tool, click it The currently selected tool is highlighted, and the cursor refl ects the current tool whenever it is in the class diagram pane
Arrow Selection tool Used to select elements, move, expand, and resize nodes
This is the default tool
Note Note tool Creates annotation nodes
Line Line tool Connects nodes
Magnifying Glass Zoom tool Enlarges or shrinks the diagram display
Hand Drag tool Pans the diagram around in the window
Choose the Arrow tool whenever you need to select, move, resize, or otherwise manipulate the nodes in a diagram
The Note and Line tools are described later in the “ Adding Annotations ” section
Trang 6296 ❘CHAPTER 14 CLASS MODELING
The Magnifying Glass and Hand tools are ways of navigating the diagram, and are described in the
next section
Navigation
Moving around the class diagram is pretty straightforward You can use the scroll bars at the
bottom and right side of the pane to scroll the diagram You can also select the Hand tool and drag
the diagram around
Reduce or magnify the diagram by selecting a magnifi cation amount in the zoom control in the lower
-right corner of the pane You can select a specifi c magnifi cation from between 10 and 1600 percent
Use the Magnifying Glass tool to incrementally zoom the diagram Select the tool and click
anywhere in the class diagram pane to increase to the next zoom magnifi cation in the menu Hold
down the Option key and a minus sign ( – ) appears in the tool Click with the Option key held down
and the diagram is shrunk to the next zoom magnifi cation level in the menu To zoom the diagram
to fi t an arbitrary portion of the diagram, drag out a rectangle using the Magnifying Glass tool The
image zooms so that the approximate area of the diagram selected fi lls the pane
The Design ➪ Diagram ➪ Zoom In (Control+Shift+Command+=) and Design ➪ Diagram ➪ Zoom
Out (Control+Command+ – ) commands are equivalent to clicking, or Option+clicking, with the
Magnifying Glass tool To scale the display to fi t the entire diagram in the pane, choose the Design ➪
Diagram ➪ Zoom To Fit (Control+Command+=) command
Selecting
You can select class nodes in a variety of ways Selecting a class also causes the diagram to scroll if
the selected class is beyond the edge of the visible diagram
Click a node to select it Drag out a rectangle using the Arrow tool to select all of the nodes that
intersect the rectangle
Class selection in the diagram and browser are linked Selecting a class in the browser selects the
same class in the diagram, and vice versa The Functions menu in a class diagram lists all of the
classes in the model, as shown in Figure 14 - 11 Choosing one selects that class in both the browser
and diagram, and scrolls to make both visible
Trang 7You can add class nodes to the selection by holding down the Shift key while clicking unselected nodes or dragging out a selection rectangle Nodes can be individually removed from a selection
by clicking a selected node while holding down the Shift key It may be necessary to click the background area or the edge of a node; clicking the node ’ s title or a member may not deselect it
You can also type the fi rst few letters of a class name When listed alphabetically, the fi rst class that matches the characters typed is selected
Quick - Jump to Source
Double - click any class or member in the class browser, and Xcode jumps to its declaration in the source code
In the class diagram, Right/Control+click on a node, as shown in Figure 14 - 12, and choose one of the commands:
Go to Declaration
Go to Defi nition
Go to Documentation These same three commands can be found in the Design ➪ Class Model submenu If an individual property or operation
in the node is selected, Xcode jumps to that specifi c instance variable or method Otherwise, you are taken to the class ’ s defi nition, implementation, or documentation
If a class or method appears in the API documentation,
a small “ book ” icon appears next to its name in the browser
Clicking the book icon jumps to its documentation, and is the same as choosing the Design ➪ Class Model ➪ Go
to Documentation command
EDITING A CLASS MODEL
“ Editing ” a class diagram is limited to customizing its appearance As mentioned at the beginning
of this chapter, you can ’ t alter the defi nition of a class in a class model Class modeling is strictly
a visualization tool Any changes you make will be (mostly) cosmetic That said, you can alter the layout and appearance of the class diagram signifi cantly, which can profoundly infl uence its effectiveness as a programming aid
Moving Nodes
The main point of class diagrams is to visually represent the relationship between classes Creating
a pleasing and readable distribution of class nodes is, therefore, paramount to creating a useful class
➤
➤
➤
FIGURE 14-12