你先把这个名单弄到了数据库里(表名famous_persons):
然后,你用这把“神器”大刀阔斧把臃肿的FamousPersons剁的稀烂。
再然后,你重造了一个轮子:
...
class FamousPersons {
privateConnection conn = null;
...
privateString findClass(String name) {
StringclassName = null;
Statementstmt = conn.createStatement();
ResultSetresult = stmt.executeQuery("SELECT * FROM famous_persons WHERE Name="+ name);
if(result.next()){
className= result.getString(2);
}
result.close();
stmt.close();
returnclassName;
}
publicPeople find(String name) {
Peoplepeople = null;
StringclassName = findClass(name);
if(className!= null) {
people= (People)Class.forName(className).newInstance();
}
returnpeople;
}
};
...
哇噢,酷!从此,你远离了FamousPersons;远离了那糟糕的日子。生活貌似从这一刻又重新燃起了希望……
嗯,出乎意料的,你又做梦了,在梦里,运维的暧昧眼神,让你想远离数据库……
5 蒸汽机时代
5.1 贪婪的欲望
终于,当我们的先祖们还沉浸在冷兵器时代,突如其来的炮火,把国门轰得稀烂;战火不断,黄金白银都顶不住火药的贪婪……
代码界里,你也终究没来得及亲自尝试远离数据库的喜悦,各种框架猝不及防的降临,他们管这叫自动注入。
5.2 神赐
好吧,时间线已经很接近现实,不过先祖们始终没有得到神赐,一切都靠自力更生。
代码界里不一样,我们有了很多框架(神器)。说起自动注入(spring便是如雷灌招风耳的大神器),听上去好像不是一回事,但其实现原理和应用机制,仍然是工厂模式。
当然,实现形式有了很大变化,从最简单的通过配置文件进行映射;到通过注解进行映射;再到通过规则进行映射(广告:预知详情,请关注后续分享)。
6 另一个梦想