CSC/ECE 517 Fall 2011/ch2 2c ac: Difference between revisions
(Blanked the page) |
No edit summary |
||
Line 1: | Line 1: | ||
<big>'''Mixin versus Interface'''</big> | |||
__TOC__ | |||
==Introduction== | |||
== Concepts to explore== | |||
== Definition== | |||
=== Multiple Inheritance=== | |||
Multiple inheritance is a feature of some object-oriented computer programming languages in which a class can inherit behaviors and features from more than one superclass. | |||
(From Wikipedia, http://en.wikipedia.org/wiki/Multiple_inheritance) | |||
=== Interfaces in Java=== | |||
http://download.oracle.com/javase/tutorial/java/concepts/interface.html | |||
=== Modules in Ruby=== | |||
Modules in Ruby are a way to group together methods, classes and constants. They are similar to namespaces in languages such as C++. (From lecture 6 note) | |||
=== Mixin using Modules=== | |||
The most interesting use of modules is to define mixins. When you include a module within a class, all its functionality becomes available to the class. Not only can modules contain class methods; they can also contain instance methods. (From lecture 6 note) | |||
= Advantage and Disadvantage = | |||
== Mixin== | |||
=== Mixin Advantage=== | |||
=== Mixin Disadvantage=== | |||
== Interfact== | |||
=== Interface Advantage=== | |||
=== Interface Disadvantage=== | |||
= Examples= | |||
== Comparable== | |||
=== Ruby Implementation=== | |||
=== Java Implementation=== | |||
== Singleton== | |||
=== Ruby Implementation=== | |||
=== Java Implementation=== | |||
<pre> | |||
public class Singleton { | |||
private static final Singleton instance = new Singleton(); | |||
/** | |||
Private constructor prevents instantiation from other classes | |||
**/ | |||
private Singleton() { | |||
} | |||
public static Singleton getInstance() { | |||
return instance; | |||
} | |||
} | |||
</pre> | |||
== Enumerable== | |||
=== Ruby Implementation=== | |||
=== Java Implementation=== | |||
== DataMapper== | |||
=== Ruby Implementation=== | |||
=== Java Implementation=== | |||
= Unique Use Cases= | |||
== Mixin Only Use Cases== | |||
== Interface Only Use Cases== | |||
= Reference = |
Revision as of 02:19, 16 September 2011
Mixin versus Interface
Introduction
Concepts to explore
Definition
Multiple Inheritance
Multiple inheritance is a feature of some object-oriented computer programming languages in which a class can inherit behaviors and features from more than one superclass. (From Wikipedia, http://en.wikipedia.org/wiki/Multiple_inheritance)
Interfaces in Java
http://download.oracle.com/javase/tutorial/java/concepts/interface.html
Modules in Ruby
Modules in Ruby are a way to group together methods, classes and constants. They are similar to namespaces in languages such as C++. (From lecture 6 note)
Mixin using Modules
The most interesting use of modules is to define mixins. When you include a module within a class, all its functionality becomes available to the class. Not only can modules contain class methods; they can also contain instance methods. (From lecture 6 note)
Advantage and Disadvantage
Mixin
Mixin Advantage
Mixin Disadvantage
Interfact
Interface Advantage
Interface Disadvantage
Examples
Comparable
Ruby Implementation
Java Implementation
Singleton
Ruby Implementation
Java Implementation
public class Singleton { private static final Singleton instance = new Singleton(); /** Private constructor prevents instantiation from other classes **/ private Singleton() { } public static Singleton getInstance() { return instance; } }