[Newbies] Adapter Pattern in SmallTalk

Conrad Taylor conradwt at gmail.com
Wed Aug 29 12:04:04 UTC 2007


Hi, if you're only interested in converting the Java code to Smalltalk, I
would simple take one class at a time.  For example, using the Glass class:
Object subclass: #Glass
     instanceVariableNames: ''
     classVariableNames: ''
     poolDictionaries: ''
     category:  'Adapter-Example'


instance methods '*initialize-release'*

initialize
   content := 0.0

instance methods '*accessing**' protocol*

content:  anObject
   content := anObject

class methods '*class initialization' protocol*
*
*
*new*
*  ^super new initialize*
*
*
Good luck,

-Conrad


On 8/29/07, KingNothing <petpa0l0 at hotmail.com> wrote:
>
>
> Hi, i'm new to this forum and to smalltalk.
> I've got to implement now the Adapeter Pattern in SmallTalk.
> I've got an example in Java that i must translate in SmallTalk.
> Here there are the Java Classes :
>
> ------------------------------------------
> public class Glass
> {
>    /**
>       in 12th of pint
>    */
>    float content;
>
>    public Glass()
>    {
>       content=0;
>    }
>
>    /**
>    */
>    public void fill(float filling)
>    {
>       content=filling;
>    }
>
>    public String toString()
>    {
>       return
>          super.toString()+
>          ", level (12th of pint)="+content;
>    }
> }
> -------------------------------
>
> public class Keg
> {
>    /**
>       content, in 12th of pint units
>    */
>    float filled;
>
>    /**
>       absolute level, in pints
>    */
>    public float getLevel()
>    {
>       return filled/12;
>    }
>
>    float original;
>    /**
>       in pints
>    */
>    public float getCapacity()
>    {
>       return original/12;
>    }
>
>
>    /**
>       Keg filled with total gallons of beer
>    */
>    public Keg(float total)
>    {
>       filled=total*8*12;
>       original=filled;
>    }
>
>    /**
>       creates a Glass filled with
>       quantity/12 pints of beer
>    */
>    public Glass draw(float quantity)
>    {
>       Glass g=new Glass();
>       g.fill(quantity);
>       filled-=quantity;
>       return g;
>    }
>
>    /**
>       % level
>    */
>    public float getPLevel()
>    {
>       return (100*filled)/original;
>    }
>
>    public String toString()
>    {
>       return
>          super.toString()+
>          ", level (%)="+getPLevel()+
>          ", level (pints)="+getLevel();
>    }
> }
> ---------------------------------
>
> public class Fusto
> {
>    /**
>       rapporto LITRO/PINTA
>    */
>    public final static float LITRO_PINTA=2.1133f;
>
>    Keg keg;
>    public Fusto(Keg k)
>    {
>       keg=k;
>    }
>
>    /**
>       crea un Glass riempito con
>       quant/10 litri di birra
>    */
>    public Glass spilla(float quant)
>    {
>       return keg.draw(quant*LITRO_PINTA*12/10);
>    }
>
>    /**
>       in litri, NON in percentuale!!!
>    */
>    public float fornisciLivello()
>    {
>       return keg.getLevel()/LITRO_PINTA;
>    }
>
>    /**
>       in percentuale
>    */
>    public float fornisciPLivello()
>    {
>       return keg.getPLevel();
>    }
>
>    public String toString()
>    {
>       return
>          super.toString()+
>          ", livello (%)="+fornisciPLivello()+
>          ", livello (litri)="+fornisciLivello();
>    }
> }
> -------------------------------------
>
> Can someone give me some hints to translate java code into SmallTalk ?
> Thanks in advance.
>
> --
> View this message in context: http://www.nabble.com/Adapter
> -Pattern-in-SmallTalk-tf4347089.html#a12384904
> Sent from the Squeak - Beginners mailing list archive at Nabble.com.
>
> _______________________________________________
> Beginners mailing list
> Beginners at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/mailman/listinfo/beginners
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/beginners/attachments/20070829/5d2a8627/attachment.htm


More information about the Beginners mailing list