首页 > 代码库 > 胡博君解Java中简单工厂模式

胡博君解Java中简单工厂模式

为什么要用简单工厂模式:

我们都知道程序是分开的,客户端中有程序,服务器端有程序,一般来说我们写的main方法中的程序都是在客户端电脑中的,按照我们学习的时候喜欢的写法:

//一般来说这个程序都是在客户电脑中,俗称调用者

public  class  Text{

public static void main(String[] args) {

    Person  p  =  new  Person();

            p.getInfo();
   }

}

//一般这个程序都在服务器中,俗称被调用者,而且是可以修改的

class Person{

     public  void  getInfo(){

      System.out.println("您好");

  }

}

疑问:以前我们习惯这种写法,但是如果这种写法用到工作当中,就会出现问题了,比如服务器中想修改一下Person类的getInfo方法名字,改成getIf(),如果服务器端一改,那么所有的客户端中的Text类中的main方法里面的程序就会报错,那么导致客户软件无法使用,最重要的问题是,客户端的程序对于工作人员来说是无法修改的。就好比腾讯的QQ软件,腾讯不可能跑到几亿用户电脑中,每台机器都去修改一下代码。所以基于客户端的程序是不可修改的,而服务器端的程序经常需要修改,为了满足这种需要,所以必须提供以下这种设计模式,来满足双方的需求。


简单工厂模式的代码:

//Text类是已经进入客户端的电脑中了,无法经行改动的

public class Text {

  public static void main(String[] args) {
   Car  car =CarFctory.getInstance("redcar");
   if(car!=null){
    //alt+向上键
   car.getInfo();
   }else{
    System.out.println("找不到这个对象");
   }
   }
}

//以下都是在服务器中的代码,工作人员可以随意修改的
class CarFctory{
public static Car getInstance(String name){
if(name.equals("redcar")){
   return new RedCar();
}else if(name.equals("bluecar")){
   return new BlueCar();
}
return null;
}
}


interface Car{
void getInfo();
}
//服务器当中
class RedCar implements Car{
public void getInfo(){
System.out.println("我是红色车");
}
}
class BlueCar implements Car{
public void getInfo(){
System.out.println("我是蓝色车");
}
}

总结:以上这种设计模式,客户端可以完全不需要修改动代码,就算服务器端有很大的改动,对于客户端的代码是完全没有影响的。简单工厂模式既便于客户,也便于程序员们优化代码。




欢迎大家收看我的在线Java全套免费教学超清视频:

http://v.youku.com/v_show/id_XODQ1NjU0NDc2.html   这是其中的一个视频连接,大家可以拖动到优酷视频下方,订阅我的账号,因为以后我会有更多视频免费提供

百度搜索:输入Fcs_D调的码农 ,或者输入"胡博君"就能看到我的很多视频

或者加我的微信号:fcsboy     我可以及时通过微信通知你们

QQ学习群:237053693


胡博君解Java中简单工厂模式