简单工厂模式:
工厂模式的UML图:
核心代码:(UI界面上的按钮事件,主要是switch....case语句的使用)
public void actionPerformed(ActionEvent e) {//添加button时间,根据不同的选择,显示不同的内容
String comboText = comboBox.getSelectedItem().toString();
switch(comboText){
case "DriverInsurance":DriverInsurance insurance = new DriverInsurance();
textField.setText(insurance.getString());
break;
case "PersonInjur":PersonInjur insurance1 = new PersonInjur();
textField.setText(insurance1.getString());
break;
case "CarInjur":CarInjur insurance2 = new CarInjur();
textField.setText(insurance2.getString());
break;
case "Comprehensive":Comprehensive insurance3 = new Comprehensive();
textField.setText(insurance3.getString());
break;
}
}
其中一个工厂类:
package simplefactory;
public class DriverInsurance {
private String str;
public DriverInsurance(){
this.str = "驾驶员伤害险";
}
public String getString(){
return this.str;
}
}
工厂模式:
核心代码:
工厂接口:
package factory;
public interface AutoInsurance {
abstract String getInfo();
}
消费者接口:
package factory;
public interface PolicyProducer {
public AutoInsurance getInsurObj();
}
工厂类:
package factory;
public class BodyInjur implements AutoInsurance{
private String description;
public String getInfo(){
this.description = "BodyInjur";
return description;
}
}
消费者类:
package factory;
public class BodyPolicy implements PolicyProducer{
public AutoInsurance getInsurObj(){
return new BodyInjur();
}
}