Delegation Versus Inheritance in java

Inheritance in JAVA programming is the process by which one class takes the property of another other class. i.e. the new classes, known as derived or super class, take over the attributes and behavior of the pre-existing classes, which are referred to as base classes or child class.

Inheritance is used to create a hierarchical-type code structure that tries to keep as much “common” code near the top of the hierarchy. In small, static systems, inheritance can be ok. But large inheritance chains can also lead to hard-to-maintain code. Read up on design patterns that favor composition over inheritance for more info when to use inheritance and when not to.

Delegation is simply passing a duty off to someone/something else.Delegation is alternative to inheritance. Delegation means that you use an object of another class as an instance variable, and forward messages to the instance. It is better than inheritance because it makes you to think about each message you forward, because the instance is of a known class, rather than a new class, and because it doesn’t force you to accept all the methods of the super class: you can provide only the methods that really make sense.Delegation can be viewed as a relationship between objects where one object forwards certain method calls to another object, called its delegate. Delegation can also a powerful design/reuse technique. The primary advantage of delegation is run-time flexibility – the delegate can easily be changed at run-time. But unlike inheritance, delegation is not directly supported by most popular object-oriented languages, and it doesn’t facilitate dynamic polymorphism.

Here is a simple example:

class ABC {
	     void methodHello()
    {
    System.out.println("hello");

    }

    void methodBye()
    {
     System.out.println("bye"); }
    }

class XYZ {
	     ABC obj = new ABC();

	 void methodHello()
        {
         obj.methodHello();
        }

        void methodBye()
        {
         obj.methodBye();
        }

}

public class VinayMain {
	     public static void main(String[] args) {
	         XYZ obj = new XYZ();
	         obj.methodHello();
	         obj.methodBye();
	     }
}

Sometimes, the choice between delegation and inheritance is driven by external factors such as programming language support for multiple inheritance or design constraints requiring polymorphism. Consider threads in Java. You can associate a class with a thread in one of two ways: either by extending (inheriting) directly from class Thread, or by implementing the Runnable interface and then delegating to a Thread object. Often the approach taken is based on the restriction in Java that a class can only extend one class (i.e., Java does not support multiple inheritance). If the class you want to associate with a thread already extends some other class in the design, then you would have to use delegation; otherwise, extending class Thread would usually be the simpler approach

 

Pin it

Trading Community Architecture (TCA)

Oracle Trading Community Architecture (TCA) is a data model that allows you to manage complex information about the parties, or customers,.TCA is the global repository for all name and address information, including those of customers and employees. This information is maintained in the TCA Registry, which is the single source of trading community information for Oracle E-Business Suite applications. These applications, as well as TCA itself, provide user interfaces, batch data entry functionality, and other features for you to view, create, and update Registry information (Source Overview Oracle® Trading Community Architecture User Guide).

The parties in TCA could be one of following four types:

Organization e.g. ABC corporation
Person e.g. vinay kumar
Group e.g. Silicon group
Relationship e.g. vinay kumar at ABC corporation.

Main components of Oracle TCA

Contacts
Locations
Party Layer
Sites
Relationships
Account Layer
Customer Accounts

Main Tables in TCA

HZ_PARTIES
HZ_RELATIONSHIPS
HZ_RELATIONSHIP_TYPES
HZ_ORG_CONTACTS
HZ_ORG_CONTACT_ROLES
HZ_CONTACT_POINTS
HZ_PARTY_SITES
HZ_LOCATIONS
HZ_ORGANIZATION_PROFILES

A Party is any entity with which have potentially do business. It could be an organization, an individual or a relationship .

A Location is a point in geographical space described by a street address.

An Account represents is the financial realtionship of company with party .

A Party Site links a party with a location, indicating that party’s usage of the location.

An Account Site is a party site that is used by a customer account, for example, for billing or shipping purposes. (Account Sites are Organization specific in Multi-Org terms, just as Customer Sites were.)

A Contact is a person in the context of an organization, modelled as a relationship between an organization and a person or between two people.A Contact Point -is point of contact the party, for example, a phone number, e-mail address.

For Each loop in java 1.5

The for-each loop, or enhanced for loop, is new feature in JDK 1.5 to remove clutter and possible errors, in iterating over collections.This will not provide any new functionality .It is just making our code more easy.It allow to create one variable which will iterate over array or collection.By this we can do nested iteration.

JDK 5.0 provides a special kind of for loop for access through all the elements of it.

 
Syntax 

For(vaiable : collection){ Statements; } 
Example:

  int[] a={1,2,3,4,5,6,7,8,9,0};
Using for Each loop :-

  for(int i : a){
    System.out.println(i);</em>
  }  

using Simple for loop :-

for(Iterator itr = a.iterator(); i.hasNext(); ) {
  String item = i.next();
  System.out.println(item);one more example will clear you more on this.

Using Foreach with Arrays  :-

String[] letters = { "v", "i", "n" , "a" , "y" };
for (String letter: letters)
   System.out.println(letter.charAt(0));