Tuesday, August 02, 2005

Being Abstracted

Now that my server migration is coming to a close, still no thanks to sharpened, I thought about a tangent point, abstraction. I get the concept from my development process, where you define an entity and then inherit additional classes from that base. It is a great concept.
Basically as I develop an application I have to see into the future to build a scalable and more importantly maintainable class structure.
So for example let's build a class to represent a table (this is the classic example). A class contains members, either functions, properties or variables to represent the object. This is how I might go about this:

1)Define a class for a rectangle (for the surface)
Properties:
Height
Width
Thickness
2)Define a class for the leg
Properties:
Height
WidthorDiameter
Shape (Enum of either Round, square or can be expanded for other options later)
3)Define the Table Class
Properties
Surface as Rectangle
Legs(NoLegs) as Leg

So as you can tell now my table is essentially a collection of other objects that make our table. In the future we may Inherit the table class:

FormalTable
Inherits Table

Properties
Leaf as Boolean
Surfaces(NoRectanglesforSurface)

So this might be a dining room table with a leaf option, where the leaf might be one of the surfaces, and we would have two more surfaces for the other halves of the shorter version of the table.

Of course this is an over simplification of things, but do you see how nice defining a good solid base to build the rest of your world from? Great Chris is just rambling along about technical things again, well not exactly.

Think about your business processes and look for common patterns in flow or structure. As you see these things it should become easier to define an operations manual or a method of doing business. The end result will be a much more efficient business model for you to become successful.

1 Comments:

Blogger Chris said...

Thought I would try this comment thing. This afternoon my friend Aaron called and said this post was just too technical. I think maybe is was a little too essoteric (I love that big word). The jist of this post was to get you to evaluate how you build the systems in your world. Keep them abstracted and maintainable.

1:42 PM  

Post a Comment

Links to this post:

Create a Link

<< Home