top button
Flag Notify
    Connect to us
      Facebook Login
      Site Registration Why to Join

Facebook Login
Site Registration
Print Preview

Describe the difference between Interface-oriented, Object-oriented and Aspect-oriented programming.

+1 vote
8 views
posted Jun 19 by Sachin
Share this question
Facebook Share Button Twitter Share Button Google+ Share Button LinkedIn Share Button Multiple Social Share Button

1 Answer

0 votes

Interface oriented

Interface oriented is something like having contract-based approach, means whatsoever be there under the Contract you have to implement all of it. A good example of this is : WCF.

Object oriented is based on

  1. abstraction – which means making things loosely coupled so that in future they can be easily handled without affecting the system.

  2. encapsulation(data hiding) – categorizing data as per their role i.e private, public, etc.

  3. inheritance – provides the real world genetic mechanism as what’s there in the parent would be there in the child too(or not).

  4. and polymorphism – means same look and feel but different functional abiltity.

Aspect oriented programming

Aspect oriented programming can be done either on Interface oriented or an Object oriented code. It can not exist alone. AOP is another method of reducing the redundant code and its impact. Let’s see an example:

You have a class ResultGraph in a Stock Application, which has say 5 methods (like MethodA, MethodB, MethodC, MethodD, UpdateGraphics).

Assume that just after a method (say, MethodX) is executed, the stock price changes – hence the graph needs to be re-rendered. In such case, UpdateGraphics needs to be called. Which means all 5 functions will call UpdateGraphics.

This appears to be simple since the number of functions is less. In a real time scenario, there are 100’s of methods and implementing this becomes tough.

AOP enables doing it in an easier manner. We write something like:-

after() : set() {   
        ResultGraph.UpdateGraphics();
}

pointcut set() : execution(* set*(*) ) && this(StockClass) && within(com.company.*);

The first code means, whenever any set is called, call ResultGraph.UpdateGraphics()

The second code interprets as,

if a method is named set*:(* means any name might follow after set), regardless of what the method returns (first asterisk) or what parameters it takes (third asterisk) and it is a method of StockClass and this class is part of the package “com.company.*”, then this is a set() pointcut. And our first code says “after running any method that is a set pointcut, run the following code”.

answer Jun 20 by Manikandan J

Your answer

Preview

Privacy: Your email address will only be used for sending these notifications.
Anti-spam verification:
To avoid this verification in future, please log in or register.

Useful Links with Similar Problem
Contact Us
+91 9880187415
sales@queryhome.net
support@queryhome.net
#470/147, 3rd Floor, 5th Main,
HSR Layout Sector 7,
Bangalore - 560102,
Karnataka INDIA.
QUERY HOME
...