Ocena użytkownikóww: ***** / 6
Nadesłany przez Kamil Dworak, 22 grudnia 2010 12:00
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.
Main.java:
/****************************************
* Wzorzec Projektowy Bridge *
* (most) *
* www.algorytm.org *
* Kontakt *
* kamil.dworak.1988[malpka]gmail.com *
* Opracowal Dworak Kamil *
*****************************************/
enum Tlok {
cd,
dvd,
bd; }
interface PlytkaInterface {
public void akcja();
}
abstract class Plytka {
protected PlytkaInterface plytkaInterface;
protected Tlok type;
protected String name;
public Plytka(Tlok type, String name, PlytkaInterface plytkaImp){
this.type = type;
this.name = name;
this.plytkaInterface = plytkaImp;
}
public String Get(){
return name + " " + type;
}
public void Set(String s, Tlok type){
this.name = s;
this.type = type;
}
public abstract void akcja();
}
class KPlytka extends Plytka {
public KPlytka(Tlok type, String name, PlytkaInterface plytkaInterface){
super(type,name,plytkaInterface);
}
public void akcja() {
plytkaInterface.akcja();
}
}
class Nagrywanie implements PlytkaInterface {
public void akcja(){
System.out.println("Nagrywam plytke");
}
}
class Odczytywanie implements PlytkaInterface {
public void akcja(){
System.out.println("Odczytuje plytke");
}
}
public class Main {
public static void main(String[] args){
Plytka ob1 = new KPlytka(Tlok.dvd, "TDK", new Nagrywanie());
Plytka ob2 = new KPlytka(Tlok.cd, "Dysan", new Odczytywanie());
ob1.akcja();
System.out.println(ob1.Get() + "\n");
ob2.akcja();
System.out.println(ob2.Get() + "\n");
ob1.Set("Verbatim", Tlok.bd);
ob1.akcja();
System.out.println(ob1.Get() + "\n");
}
}