marți, 5 iunie 2012

Car Factory

package pack;
public interface Car {

    public String getCarFeatures();
    public String getCarName();
}
.............................
package pack;

public class LuxuryCar implements Car{
    private String name;
   
    public LuxuryCar (String cName)
    {
        name=cName;
    }
   
    public String getCarFeatures()
    {
        return "Luxury Car";
    }
   
    public String getCarName()
    {
        return name;
    }
}

...............................
package pack;

public class LuxurySUV implements SUV{

    private String name;
   
    public LuxurySUV(String sName) {
        name=sName;
    }
   
    public String getSUVFeatures(){
        return "Luxury SUV Features";
    }
    public String getSUVName(){
        return name;
    }
}
.................................
package pack;



public class LuxuryVehicleFactory extends VehicleFactory{

    public Car getCar(){
        return new LuxuryCar("L-C");
    }   
   
     public SUV getSUV() {
         return new LuxurySUV("L-S");
   }

}

.........................
package pack;



import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

@SuppressWarnings("serial")
public class MyFrame extends JFrame{
    String s1[]={"luxury","non_luxury"};
    String s2[]={"Car","SUV"};
    JComboBox tip=new JComboBox(s1);
    JComboBox model=new JComboBox(s2);
     JLabel rezultat= new  JLabel("Rezultat cautare");
   
    public MyFrame()
    {
        setSize(500,500);
        setVisible(true);
        JPanel p1=new JPanel(new FlowLayout());
        JPanel p2=new JPanel(new FlowLayout());
       
        add(p1,BorderLayout.WEST);
        p1.add(tip);
        p2.add(model);
        add(p2,BorderLayout.CENTER);
        add(rezultat,BorderLayout.NORTH);
        myActionListener A=new myActionListener();
        tip.addActionListener(A);
        model.addActionListener(A);
    }
   
    class myActionListener implements ActionListener
    {

        public void actionPerformed(ActionEvent arg0) {
            rezultat.setText(cauta());
           
        }
       
       
    }
    public String cauta()
    {
        String searchResult =null;
        VehicleFactory vf = VehicleFactory.getVehicleFactory(tip.getSelectedItem().toString());
         if (model.getSelectedItem().toString().equals("Car")) {

               Car c = vf.getCar();
               searchResult = "Name: " + c.getCarName() + "  Features: "

                           + c.getCarFeatures();

         }

         if (model.getSelectedItem().toString().equals("SUV")) {

               SUV s = vf.getSUV();

               searchResult = "Name: " + s.getSUVName() + "  ||||   Features: "

                           + s.getSUVFeatures();

         }
         return searchResult;       
    }
}

......................................
package pack;


public class NonLuxuryCar implements Car{
    private String name;
   
    public NonLuxuryCar(String cName) {
        name=cName;
    }
   
    public String getCarFeatures()
    {
        return "Non Luxury Car";
    }
   
    public String getCarName()
    {
        return name;
    }
}

.....................................
package pack;



public class NonLuxurySUV implements SUV{
    private String name;
   
    public NonLuxurySUV (String sName){
        sName=name;
    }
   
    public String getSUVFeatures()
    {
        return "Non LUXURY SUV";   
    }
   
    public String getSUVName()
    {
        return name;
       
    }

   
}

...................................
package pack;

public class NonLuxuryVehicleFactory extends VehicleFactory{
   
    public Car getCar()
    {
        return new NonLuxuryCar("NL-C");
    }

    public SUV getSUV()
    {
        return new NonLuxurySUV("NL-SUV");
    }
}
..........................
package pack;


public interface SUV {

    public String getSUVFeatures();
    public String getSUVName();
}

.................................
package pack;


public class Test {

    /**
     * @param args
     */
    public static void main(String[] args) {
        new MyFrame();
    }

}
.......................
package pack;


public abstract class VehicleFactory {
   
    public static final String LUXURY_VEHICLE=null;
    public static final String NON_LUXURY_VEHICLE=null;
   
    public abstract Car getCar();
    public abstract SUV getSUV();
    public static VehicleFactory getVehicleFactory (String s)
    {
        if(s.equals("luxury"))
            return new LuxuryVehicleFactory();
            else
            if(s.equals("non_luxury"))
            return new NonLuxuryVehicleFactory();

            return null;
    }

}

Niciun comentariu:

Trimiteți un comentariu