User talk:Che: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 55: Line 55:
=== Ruby Implementation===
=== Ruby Implementation===
=== Java Implementation===
=== Java Implementation===
= Uniqueness=
= Unique Use Cases=
== Mixin Only Use Cases==
== Mixin Only Use Cases==
== Interface Only Use Cases==
== Interface Only Use Cases==
= Reference =
= Reference =

Revision as of 02:01, 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;
    }
}

Enumerable

Ruby Implementation

Java Implementation

DataMapper

Ruby Implementation

Java Implementation

Unique Use Cases

Mixin Only Use Cases

Interface Only Use Cases

Reference