按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
The forced cast is the use of the method DirectCase。 The cast is forced because a conver
sion to the desired type will occur; regardless if it is possible or not。 If the cast is not possible; a
cast exception is thrown。
Another way to perform a type cast is to use a query cast; as illustrated by the following
code; again assuming the inheritance hierarchy of this section。
Dim backToDerived As Derived = TryCast(baseCls; Derived)
In the code; the cast involves using the TryCast method。 This cast is a query because a cast
will be attempted。 If the cast is successful; then an instance of the type is assigned to the vari
able backToDerived。 If the cast is not possible; then backToDerived is assigned a Nothing value。
No exception is thrown。 This casting technique is possible only for reference types。
…………………………………………………………Page 217……………………………………………………………
CH AP T E R 7 ■ L E AR N IN G AB O U T CO M P O N E N TS AN D C L AS S H I E R AR C HI E S 195
The Important Stuff to Remember
In this chapter; you learned about interfaces and implementations。 Here are the key points
to remember:
o Using interfaces is not like using inheritance。 They are two separate designs; even though
interfaces will use inheritance。
o Interfaces at an abstract level imply ideas of how you would like your application to work。
o Ideas when implemented as interfaces should be general and applicable to multiple
application implementations for the domain。
o Ideas are represented using Visual Basic interfaces。 And interfaces are implemented
using classes or structures。 But note that interfaces are reference types。
o Factories are used to instantiate implementations and return an instance that imple
ments an interface。 Using a factory means that the user of an interface does not need to
know which type of implementation object is instantiated。
o Interfaces can be considered as facets that might be targeting a specific characteristic of
an implementation。 However; as illustrated in the previous chapter; interfaces do not
expose Friend state or the Friend workings of the implementations。
o ponents are a fundamental way of developing code and should be your primary
way of writing code。 For the remainder of this book; interfaces will be used whenever
possible。 Take notice and try to understand what the idea behind the interface is。
Some Things for You to Do
The following are a couple things for you to do to apply what you’ve learned in this chapter。
1。 Implement your own tax system using the predefined base classes。
■Note Because of the number of possible tax systems; I do not provide an answer for exercise 1。 If you
want me to review your answer; please send it to me at christianhgross@gmail。。
2。 Add functionality to the tax engine’s base classes that implement the behavior of a
minimum tax…free amount。 This means if your ine is not above the minimum tax
free amount; you do not pay taxes。
…………………………………………………………Page 218……………………………………………………………
…………………………………………………………Page 219……………………………………………………………
C H A P T E R 8
■ ■ ■
Learning About ponent
Oriented Architecture
So far; you have learned the essentials of Visual Basic。 With the essentials; you can write a
functional application that uses classes; objects; interfaces; and inheritance。 In this chapter;
you’ll learn about a Visual Basic programming technique that some developers define as structural。
A structural programming technique is when the code does not directly serve to solve a business
problem; but solves a problem relating to building the application。
Another purpose of this chapter is to give you more experience with developing ponent
oriented code。 In particular; you’ll learn how to develop a kernel。 Developing a kernel demon
strates the power and flexibility of the ponent…oriented development approach。 You can
build a working system even though you might not know what all of the implementations are
ahead of time。 This type of development makes it possible to modularize development; in that
individual teams are responsible for certain interfaces。 Then once the pieces have been imple
mented; they are fitted together like a jigsaw puzzle。 Of course; interfaces and ponents do
not guarantee success; but they do ensure one team does not need to wait for another team to
finish its code。
To demonstrate all of these concepts; we’ll build an application that controls lighting in
buildings; using the kernel programming approach。
Understanding Kernels
Imagine you are the owner of a house or mercial building; and you want to reduce your
electricity bill。 One way of doing that is to automate the lighting system of your building so that
lights are on when they need to be。 What is unique about this system is that you have a controller
and the devices that are controlled。
The controller controls devices that it does not know about ahead of time; but fulfills a
contract。 The lighting system is a controller; programmatically called a kernel; because the
rooms that it controls are not known initially。 The rooms are known when the controller is used
to manage the lighting system。 The kernel programming approach is one where a core of func
tionality is developed。 The core functionality by itself does not work; because it relies on other
pieces to perform certain tasks。 In programming terms; this is called developing ponents
that use interfaces and implementations。
197
…………