最近准备毕业设计的开题报告,原来设想手机控制端使用J2ME,但是mentor给我思路说可以考虑使用OSGI,一番开导,完全打乱了我原来的想法,思路当然也开阔不少,我决定研究一下OSGI的可行性。 先介绍一下OSGI,如很多人一样,对OSGI这个名词的了解关注适于Eclipse,常见的解释“OSGi 联盟建立于 1999 年,是一个非赢利机构,旨在建立一个开放的服务规范。OSGi 规范为网络服务定义了一个标准的、面向组件的计算环境,它最初的目的就是为各种嵌入式设备提供通用的软件运行平台,屏蔽设备操作系统与硬件区别的中间件平台,通过这个平台,可以对不同软件商提供的应用(OSGi 中称为 Bundle)进行组件的生命周期管理的能力,如应用组件可以从运行中被安装、升级或者移除而不需要中断设备的操作,应用组件可以动态的发现和使用其他库或者应用程序。由于 OSGi 技术具有服务组件模块化、动态加载应用等优点,正被越来越多的领域关注,如嵌入设备制造业、汽车制造业、企业应用等。目前,OSGi 联盟发布的最新的 OSGi 服务规范为 4.0。” 看了OSGI的WhitePaper说OSGI应用于多种领域,见下图 我就想在我的Nokia6670手机里使用OSGI,照理来讲肯定是可以搞定的,因为WhitePaper说了不少嘛,但是目前对OSGI的了解仅限于使用Eclipse开发几个Bundle的简单协作,自己想想直接把这个部署到手机里貌似不太可能,然后又Google的N多资料,终于发现一个CLDC设备上OSGI的实现,来自ProSyst的mBedded Server CLDC Edition,貌似有个评估版可以下载,我发现可以在我的Nokia机器上使用OSGI framework的希望了。还有Google到的信息是Knopflerfish的一个OSGI platform实现貌似是可以在SonyEricsson P900机器上跑起来了的。 郁闷的台湾南海的地震把什么海底光缆搞挂了,这几天国外网站都上不了,osgi,Knopflerfish,ProSyst都上不去,所以不能获取进一步深入学习资料,网页都打不开非常郁闷啊! 不知道有没有人部署过这样的OSGI在手机里的应用,总觉得这个OSGI的WhitePaper说的都是抽象层面上的,我想学习的是怎么样把这个用起来。说OSGI规范化***,但是不知道如何用起来啊。。。希望有研究OSGI的人和我交流交流。 J2ME + WebService是个简单的架构,J2ME开发手机上的Application,WebService提供手机和Server的信息交互。考虑过用.NET实现WebService,J2ME调用。这个系统结构相对容易被更多人了解且容易实现。 两种实现,相对来说更想尝试OSGI,但是OSGI却相对来说陌生一点,现在很多关于OSGI的资料也访问不了,矛盾啊。。。
到公司实习近五个月了,主要从事C++开发,困扰于复杂的专家系统的陈旧代码,不能说代码写的不好,肯定比我写出来的C++代码好,但是却很难让人读懂,逻辑复杂,而且又缺乏Code的维护,文档也没有,所有系统特性完全由前人口传声授,搞得很头大。。。 当然也学习到不少东西,比如如何分析复杂的代码,经历种种挫败打击之后,我总结出如下规律,面对一个复杂的系统,你完全不知道它是干什么的,首先从大的角度把握系统的业务特性,主要完成后哪些操作,企业级别应用不外乎数据库的CRUD,非要区分出不同之处个人认为就是各种应用如何把着简单的四种操作弄得更复杂啦!具体方法无非转圈再转圈! 然后拆解出系统层次架构的模型,在纸上画出层次实现框图有助于快速把握系统的层次模型。 分解出层次模型之后的下一步就是关注BusinessLogic层东西,如何系统层析模型不好,例如BL和DAO混杂,首先要做的是想办法如何重构这样的模型,因为不重构这样的系统很快你就会感觉这个项目没有尽头了,在痛苦中煎熬啊。在写Code之前,一定要理解BL的东西,Code谁都会写,但是要高效完成Coding工作,理解你要写什么是前提,我自己在这个方面吃亏不少,写出来Code,自己也不知道是干什么的,项目结束了,现在强烈鄙视自己了 重新开始BLOG生涯了,原因:巩固自己学习到的知识,并且将自己学习的体会于大家分享,也许我的些许经验能给迷茫当中的人带来帮助,不吝啬自己的只言片语,哪怕是不够成熟的。另一方面,表达出自己的理解和思想,或许会获得大家不同的评价,你有一个思想我有一个思想,交换,我们就有两个思想了!当然,自己错误的理解马上能得到大家的纠正,这对自己知识的构建是非常好有帮助的! 下一阶段学习计划 Spring,Hibernate,有空也玩玩AJAX
设计模式学习(一) 工厂模式之简单工厂
Creational Pattern:
*creates objects for you rather than having you instantiate objects directly
*gives your program more flexibility in deciding which objects need to be created for a given case
工厂模式有以下三种形态:
● 简单工厂(Simple Factory)模式:又称静态工厂方法(Static Factory Method)模式
● 工厂方法(Factory Method)模式:又称多态性工厂(Polymorphic Factory)模式
● 抽象工厂(Abstract Factory)模式:又称工具箱(Kit 或 Toolkit)模式
简单工厂模式其实是普通工厂模式的一个特例,今天就从这里开始吧。
其结构可以简单地表示如下:
没用Visio画,大家见谅呀
我们从一个实际的例子来看这个简单工厂模式
假设一个农场,专门向市场销售各种水果,假设只提供良种的水果,苹果和葡萄,我们为水果设计一个抽象类Fruit,所有水果都必须实现这个接口
FruitFactory类,水果加工厂,根据需要(不同参数代表不同的水果需求)给市场供给水果。