@
Allianzcortex 后端开发确实对 同步 IO/异步 IO 以及阻塞模型 做概念上的了解即可(因为通常 指的都是 HTTP 服务器后端业务开发),
跟服务端开发确实不是一个概念,因为绝大部分后端开发都是在成熟的框架下完成业务的编码
拿 J2EE 来讲, Servlet3.0 规范之前是没有异步的 IO ,都是阻塞,然后每一个 HTTP 请求对应一个
ServletRequest ,如果 Servlet 不返回信息,浏览器就会一直被阻塞,直到超时,而后端每一个请求对应一个线程
这样也可以简化开发,另外针对 HTTP 的无状态的特性,大大降低了程序员的心智负担,仅需要在数据库操作的 Service
层做事务跟并发同步 即可,其余的业务层 视图层都是针对单用户编写代码
Java 的反射并不是多难,理解反射的概念 有助于理解框架,要想程序逻辑清晰,得面向切面编程吧,把事务控制
日志记录 全向访问都通过 切面隔离开来,这样主线逻辑代码就会更清晰,这里就会用到 AOP
对象的管理,不能总 new 来 new 去,肯定要交给对象容器来管理,现在连 Android 都开始流行 依赖注入跟 AOP 了
直接用 @注解 +反射
而 AOP 以及依赖注入提出来比较晚,所以没有上 Gof 设计模式那本书,你看过 Head First 设计模式就知道 Java 结合反射 动态代理来实现对象的装饰
以前写 Android 是这样一个尿性
public xxxActivity extends Activity {
@
Overrideprotected onCreate(){
xxxx;
xxxx;
findByView();
findByView();
findByView();
}
xxx = xxxObj.setOnClickListen(new onClickListen(){
})
}
现在呢?
直接注解,完事,然后交给框架去反射 装配我们的代码
@
Activity(label = "@string/app_name")
@
Layout(R.layout.main)
public class HelloTransfuse {
@
Inject @
View(R.id.textview)
TextView textView;
@
Inject @
Resource(R.string.hello)
String helloText;
@
OnCreate public void hello() {
textView.setText(helloText);
}
}