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