import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
public class Baza2Transformer implements Transformer
{
int numar;
@SuppressWarnings("unchecked")
List listenerList = new ArrayList();
@SuppressWarnings("unchecked")
public void addNumarChangeListener(NumarChangeListener listener)
{
listenerList.add(listener);
}
public void setNumar(int numar)
{
this.numar=numar;
for(Object o:listenerList)
{
NumarChangeListener listener = (NumarChangeListener) o;
listener.numarChanged(numar);
}
}
public String toString ()
{
return Integer.toBinaryString(numar);
}
public NumarChangeListener createOwnListener()
{
return new ListenerBaza2();
}
public class ListenerBaza2 implements NumarChangeListener
{
public void numarChanged(int numar)
{
Baza2Transformer.this.numar=numar;
}
}
}
................................................
import java.util.ArrayList;
import java.util.List;
public class Baza3Transformer implements Transformer
{
int numar;
List listenerList = new ArrayList();
@SuppressWarnings("unchecked")
public void addNumarChangeListener(NumarChangeListener listener)
{
listenerList.add(listener);
}
public void setNumar(int numar)
{
this.numar=numar;
for(Object o:listenerList)
{
NumarChangeListener listener = (NumarChangeListener) o;
listener.numarChanged(numar);
}
}
public String toString ()
{
return Integer.toString(numar,3);
}
public NumarChangeListener createOwnListener()
{
return new ListenerBaza3();
}
public class ListenerBaza3 implements NumarChangeListener
{
public void numarChanged(int numar)
{
Baza3Transformer.this.numar=numar;
}
}
}
..........................................
import java.util.ArrayList;
import java.util.List;
public class Baza4Transformer implements Transformer
{
int numar;
List listenerList = new ArrayList();
public void addNumarChangeListener(NumarChangeListener listener)
{
listenerList.add(listener);
}
public void setNumar(int numar)
{
this.numar=numar;
for(Object o:listenerList)
{
NumarChangeListener listener = (NumarChangeListener) o;
listener.numarChanged(numar);
}
}
public String toString ()
{
return Integer.toString(numar,4);
}
public NumarChangeListener createOwnListener()
{
return new ListenerBaza4();
}
public class ListenerBaza4 implements NumarChangeListener
{
public void numarChanged(int numar)
{
Baza4Transformer.this.numar=numar;
}
}
}
..........................................
public class Main
{
public static void main(String[] args)
{
Transformer trans2 = TransformerFactory.createTransformer(2);
Transformer trans3 = TransformerFactory.createTransformer(3);
Transformer trans4 = TransformerFactory.createTransformer(4);
NumarChangeListener listener2 = trans2.createOwnListener();
NumarChangeListener listener3 = trans3.createOwnListener();
NumarChangeListener listener4 = trans4.createOwnListener();
trans2.addNumarChangeListener(listener3);
trans2.addNumarChangeListener(listener4);
trans3.addNumarChangeListener(listener2);
trans3.addNumarChangeListener(listener4);
trans4.addNumarChangeListener(listener2);
trans4.addNumarChangeListener(listener3);
trans3.setNumar(5);
System.out.println("Numarul initial: 5");
System.out.println("Numarul in baza 2: " + trans2.toString());
System.out.println("Numarul in baza 3: " + trans3.toString());
System.out.println("Numarul in baza 4: " + trans4.toString());
trans2.setNumar(13);
System.out.println("Numarul initial: 13");
System.out.println("Numarul in baza 2: " + trans2.toString());
System.out.println("Numarul in baza 3: " + trans3.toString());
System.out.println("Numarul in baza 4: " + trans4.toString());
}
}
.........................
public interface NumarChangeListener
{
void numarChanged(int numar);
}
........................
public interface Transformer
{
public void setNumar(int numar);
public void addNumarChangeListener(NumarChangeListener listener);
public NumarChangeListener createOwnListener();
}
........................
public class TransformerFactory
{
public static Transformer createTransformer(int baza)
{
switch(baza)
{
case 2: return new Baza2Transformer();
case 3: return new Baza3Transformer();
case 4: return new Baza4Transformer();
default: throw new RuntimeException();
}
}
}
Niciun comentariu:
Trimiteți un comentariu