从万物皆对象->万物皆配置
逆袭篇
万物皆对象
对于大部分刚入java佛门的童鞋们,一开始都会被灌输
“万物皆对象”
的理念,甚至一度曾以此当作搪塞别人问你为啥没有女票的理由,紧接着你就会上来一顿乱秀:
public class GirlFriend {
//...臆想特征
public synchronized void fallInLove(HandSomeBoy me) {
//吃饭
//睡叫
//打豆豆
}
public synchronized void seeMovies() {
while(true) {
//forever
}
}
//...任何可以独占女票的想法
}
new完后一人独自深思到深夜…这滋味颇为难受香菇(想哭)
到这老夫意图已经浮出水面:
与其日日想着追女票而惶惶不可终日,索性不如来让修炼自己的技术,笔者也再想,妹子所喜欢的抛开个人颜值不谈(这个实在不服的可以打回重来????) 其实更看重应该是你的人格魅力,比如谈吐,穿着(好收住,扯远了啦????)
那么作为一枚程序员如何在上面难以企及的魅力中在把妹时有一席之地呢,当然是升级你的技能-coding level !!!
万物皆配置
曾几何时,我们习惯于见一个对象new一个,见一个功能也去不断new 接口的实现类,比如你一定写过这样的
Service service=new Service();
if ("吃饭") {
new eatService();
}else if("看电影") {
new moviceService();
}else if("逛街") {
new walkStreetService();
}else if("打游戏") {
new gameService();
}else {
...
}
OK这样的代码,你写的时候很嗨,现在问题来了如果你的女票还有别的(城市套路深哈哈哈,说好不聊这个)功能需求 比如见家长,约会等等之类你怎么做只好再去new对应的功能然后再追加分支结构
兄弟,你已经是个成熟的程序员了,要学会偷懒啦: 既然有这么多的功能需求就应该想到通过规定一个通用的实例对象,比如Propery配置文件 ,xml文件 甚至到以后更高级的yml配置
下面是一个Property配置文件的使用和业务对象的创建
public class GetProperies {
private static Properties properties=new Properties();
static {
InputStream inputStream=null;
try {
inputStream=new FileInputStream("config\\server.properties");
properties.load(inputStream);
} catch (IOException e) {
e.printStackTrace();
}finally {
if(inputStream!=null) {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public static String getValue(String key) {
return properties.getProperty(key)==null ? "" : properties.getProperty(key);
}
}
解释一哈: 上面我们提到通过配置文件来 记录每个业务功能,为了以后升级和拓展方便我们统一放在配置文件中上面就是统一加载所有配置文件的套路
下面根据你的意图去创建对应的业务实例对象
调用:
各位舒服不,现在我只需要你传给我一个type告诉做什么 ,我就可以通过静态工厂为你生产对象,这样无论以后有什么功能仅仅改一下入口参数即可,此时的系统是比较稳定的!
注:上面使用了泛型,反射,异常处理等 如果不了解可以baidu一下
配置文件的功能:
1.可以统一配置一些参数,比如Socket通信中服务端和客户端的监听端口,业务功能
2.可以简化代码的实现,所有的信息都可以直接通过配置来使用
3.可维护性高,低耦合,避免了出现新的需求就要对源码大动干戈,这样很容易产生问题,有了配置文件,改动只需要在配置中更改,是一种优雅的方式
笔者寄语
通过上面的例子我们可以发现一点:很多时候当你coding过程中,产生了偷懒的想法的时候,你的level就会开始上升一个台阶,笔者亲测有效! 我就是一个爱偷懒的开发君哈哈哈哈…(不过基础得足够扎实才能够去偷懒,你说是吧)
最后:jiao de 还行的童鞋点个关注再走吧????