-
-
[原创] 谈谈陌生平台、语言的学习与mvc
-
发表于:
2016-1-28 00:03
15393
-
原帖地址:http://blog.csdn.net/feivirus/article/details/50529641
最近项目需要,接触mac平台的开发。之前做Windows上的开发,感觉很陌生的东西,几天下来,突然脑海中一直想着“3”这个数字。3层架构,界面,模型,控制,很通用的设计框架。3步学习,从windows到mac,linux,甚至Android,java的学习的过程。
先说说3步学习。
windows的三层相对很熟悉,流行的Direct UI或者QT写界面,展示view层。c++写dll完成业务的封装,操作文件、注册表、网络的一些API,数据的持久化,云端通信存储,业务model层。c语言写内核驱动完成一些底层监控拦截的业务,不算是标准的控制control层。界面,比如界面看一些《C++ GUI Qt 4编程》,业务层看一些《windows核心编程》,内核层看《寒江独钓Windows内核安全编程》。
mac上刚开始接触,我的认识是。view层去了解下cocoa界面,比如《苹果开发之Cocoa编程》。model层看写object-c的资料,操作文件,网络库,cocoa提供了一些库。可以通过linux的c写so提供库的调用。mac的内核部分看下《Mac OS X & iOS操作系统》。
java的j2se,ssh,前端也是三步学习。java se的基本语言。第二部看下Struts2的控制流程,hibernate操作的dao数据库阶段。spring或者webx的控制流程。第三步了解下前端。
3层架构,太通用了。
现在c++写windows客户端的代码时,也习惯的先加几个虚拟文件夹,分出UI,Model(DAO),Service,IPC,Util部分。然后考虑每一块大概几个类,给出类的一些声明,接口,然后一个个类的去填写。代码该是填的,像古时候的填词,不是写一个加一个的。UI填一些界面相关的逻辑,比如QT的界面类,实现信号/槽的一些逻辑。Model填一些业务相关的名词类,比如CFile,CReg,CFilter,CProcess,CEmail等,填充具体的方法。DAO涉及和本地xml文件的持久化操作,json和云端的交互,实现所有业务的云控。Service填一些CManager,CDispatch,CCtrl类似的一些控制,调度接口,保存些Model的成员变量。IPC用于进程间的通信,比如和驱动通信,和其他模块通信,类似CDriverIPC的类,CMessage,广播消息,点对点消息业务。UTil实现一些辅助功能,类似CommonUtil的公共函数命名空间。
java写的后台,oc的代码,大体也是这些设计。
MVC的简单业务区分,有时满足不了业务复杂度,比如Control层,会经常考虑一些设计模式的实现,比如监听模式,职责链,策略模式等。有意或者无意中的设计模式的使用,感觉可以区分出刚毕业程序员和写了多年代码的程序员了。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)