package fac;
//定义接口
interface Car{
public void run();
public void stop();
}
//具体实现类
class Benz implements Car{
public void run(){
System.out.println("Benz开始启动了。。");
}
public void stop(){
System.out.println("Benz停车了。。");
}
}class Ford implements Car{
public void run(){
System.out.println("Ford开始启动了");
}
public void stop(){
System.out.println("Ford停车了。");
}
}
//工厂
class Factory{
public static Car getCarInstance(String type){
Car c=null;
if("Benz".equals(type)){
c=new Benz();
}
if("Ford".equals(type)){
c=new Ford();
}
return c;
}
}
public class FactoryDemo02 { public static void main(String[] args) {
Car c=Factory.getCarInstance("Benz");
if(c!=null){
c.run();
c.stop();
}else{
System.out.println("造不了这种汽车");
}
}}
为要写一个Car接口???
//定义接口
interface Car{
public void run();
public void stop();
}
//具体实现类
class Benz implements Car{
public void run(){
System.out.println("Benz开始启动了。。");
}
public void stop(){
System.out.println("Benz停车了。。");
}
}class Ford implements Car{
public void run(){
System.out.println("Ford开始启动了");
}
public void stop(){
System.out.println("Ford停车了。");
}
}
//工厂
class Factory{
public static Car getCarInstance(String type){
Car c=null;
if("Benz".equals(type)){
c=new Benz();
}
if("Ford".equals(type)){
c=new Ford();
}
return c;
}
}
public class FactoryDemo02 { public static void main(String[] args) {
Car c=Factory.getCarInstance("Benz");
if(c!=null){
c.run();
c.stop();
}else{
System.out.println("造不了这种汽车");
}
}}
为要写一个Car接口???
从这个问题楼主可以感受一下开闭原则,追求灵活的时候,要点约束。如果一点约束都没有,Factory直接产出Object对象,那这样的工厂在使用的时候,意外就会比较多。
你这里是用接口 new 的,这样灵活性更高,不用每进来一个牌子的车,就用某个牌子的车去new .
直接用接口构造,实例化某个牌子的车。
多态的体现