Sign in to follow this  

Do you call this as "object related design"?

This topic is 1652 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I'm going to use Java as an example. Any text in between quotation marks can be taken with a grain of salt, because I'm not sure what verb fits in those quotation marks.

 

There are three objects: House, Resident, and Car.

 

These three objects are not object-oriented in anyway possible. However, they are "related" when placed together like this:

 

yudoltl.png

 

That just makes them related by package name. Going further, we can make them a bit more "related" to one another like this:

 

HtByH7I.png

 

Ignoring the methods above, and just looking at the variables, we can see that a House object have 3 Residents, and 2 cars. And since the Car object needs a Resident as its owner, it implies Resident have Car within their scopes.

 

Thus we can get:

 

House > Resident > Car

 

I was looking around on Google the other day, searching around forums and stuffs, and was wondering what this "relation" is called. Some call it the "top down approach", while others disagree with it, and said it has nothing to do with designing a program.

 

What is it really called? And how do you use it (best practices)?

Share this post


Link to post
Share on other sites

This is called a HAS-A relationship and is different from IS-A, IS-A implies inheritance where as HAS-A implies ownership. Aggregation is the other name for this relationship under which you can also find information.

 

HAS-A is usually more important then IS-A. see this example

class Leg
{
}
 
class Chair
{
    Leg m_legs[4];
}

In the case of Chair you wouldn't inherit from Leg but it is clear that it has 4 legs in this case, Chair owns it's legs and as such has legs. And that is exactly where the name HAS-A relationship comes from, and UML expresses this with a line that ends in a diamond with a number or star above it.

 

http://en.wikipedia.org/wiki/Has-a

Share this post


Link to post
Share on other sites

In future, please paste code into the forums using the editor features. You get a neat, syntax highlighted and scrollable box:

public class Example {
 
    private int whatever;
 
    public Example(int whatever) {
        this.whatever = whatever;
    }
 
    public int frobnicate(int foo, int bar) {
        return foo + (bar * whatever);
    }
 
    // Etc...
}

You can also manually use tags around the code if you find the WSYISYG editor a bit annoying.

 

Images are bad for code, they aren't searchable, we cannot paste it into our local editors, might be difficult to read on a mobile device, etc.

 

 

 

 

Share this post


Link to post
Share on other sites

In future, please paste code into the forums using the editor features. You get a neat, syntax highlighted and scrollable box:

public class Example {
 
    private int whatever;
 
    public Example(int whatever) {
        this.whatever = whatever;
    }
 
    public int frobnicate(int foo, int bar) {
        return foo + (bar * whatever);
    }
 
    // Etc...
}

You can also manually use tags around the code if you find the WSYISYG editor a bit annoying.

 

Images are bad for code, they aren't searchable, we cannot paste it into our local editors, might be difficult to read on a mobile device, etc.

I actually found that the WYSIWYG editor doesn't always load so on slower connections your are stuck with the [ code ] [ /code ] tags.

Share this post


Link to post
Share on other sites

If it isn't already a known issue, might be worth highlighting that in the GDNet suggestions forum. Personally, I like using the markup directly, my experience with the WYSIWYG editor is often one of frustration.

Share this post


Link to post
Share on other sites
Sign in to follow this