首页 > 代码库 > 胡博君解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中简单工厂模式