摘要: 在 开发Android和iPhone应用程序时,我们往往需要从服务器不定的向手机客户端即时推送各种通知消息,iPhone上已经有了比较简单的和完美的 推送通知解决方案,可是Android平台上实现起来却相对比较麻烦,最近利用几天的时间对Android的推送通知服务进行初步的研究。在Android手机平台上,Google提供了C2DM(Cloudto Device Messaging)服务,起初我就是准备采用这个服务来实现自己手机上的推送功能。Android Cloud to Device Messaging (C2DM)是一个用来帮助开发者从服务器向Android应用程序发送数据的服务。该服务 阅读全文
posted @ 2012-08-11 16:45 黄明恩 阅读(451) 评论(0) 推荐(0) 编辑
摘要: Android的消息机制(一) android 有一种叫消息队列的说法,这里我们可以这样理解:假如一个隧道就是一个消息队列,那么里面的每一部汽车就是一个一个消息,这里我们先忽略掉超车等种种因素,只那么先进隧道的车将会先出,这个机制跟我们android 的消息机制是一样的。一、角色描述1.Looper:(相当于隧道) 一个线程可以产生一个Looper 对象,由它来管理此线程里的Message Queue( 车队,消息隧道) 。2.Handler: 你可以构造Handler 对象来与Looper 沟通,以便push 新消息到Message Queue 里;或者接收Looper( 从Message 阅读全文
posted @ 2012-08-11 16:02 黄明恩 阅读(1330) 评论(0) 推荐(1) 编辑
摘要: 长方形有二个属性长和宽。并有一个设置长的方法和设置宽的方法,还有一个求面积的方法. 像下面 private int length; private int width; public void setLength(int lenght) { this.length = lenght; } public void setWidth(int width) { this.width= width; } public int getArea() { return this.length * this.width; } 如果说正方形是长方形的子类。为了保证正方形长和宽相等,那对应于正方形的二设置长宽的个 阅读全文
posted @ 2012-03-28 00:19 黄明恩 阅读(2835) 评论(0) 推荐(1) 编辑
摘要: 转自:http://www.cnblogs.com/feipeng/archive/2007/03/02/661827.html一、ISP简介(ISP--Interface Segregation Principle):使用多个专门的接口比使用单一的总接口要好。一个类对另外一个类的依赖性应当是建立在最小的接口上的。一个接口代表一个角色,不应当将不同的角色都交给一个接口。没有关系的接口合并在一起,形成一个臃肿的大接口,这是对角色和接口的污染。“不应该强迫客户依赖于它们不用的方法。接口属于客户,不属于它所在的类层次结构。”这个说得很明白了,再通俗点说,不要强迫客户使用它们不用的方法,如果强迫用户使 阅读全文
posted @ 2012-03-28 00:16 黄明恩 阅读(391) 评论(1) 推荐(0) 编辑
摘要: 一、DIP简介(DIP--Dependency Inversion Principle):1、高层模块不应该依赖于低层模块,二者都应该依赖于抽象。2、抽象不应该依赖于细节,细节应该依赖于抽象。高层模块包含了一个应该程序中的重要的策略选择和业务模型,正是这些高层模块才使得其所有的应用程序区别于其他,如果高层依赖于低层,那么对低层模块的改动就会直接影响到高层模块,从而迫使它们依次做出改动。二、举例说明:反面例子:缺点:耦合太紧密,Light发生变化将影响ToggleSwitch。解决办法一:将Light作成Abstract,然后具体类继承自Light。优点:ToggleSwitch依赖于抽象类Li 阅读全文
posted @ 2012-03-28 00:08 黄明恩 阅读(555) 评论(0) 推荐(0) 编辑
摘要: 定义:如果对于类型S的每一个对象o1,都有一个类型T的对象o2,使对于任意用类型T定义的程序P,将o2替换为o1,P的行为保持不变,则称S为T的一个子类型。子类型必须能够替换它的基类型。LSP又称里氏替换原则。对于这个原则,通俗一些的理解就是,父类的方法都要在子类中实现或者重写。对于依赖倒置原则,说的是父类不能依赖子类,它们都要依赖抽象类。这种依赖是我们实现代码扩展和运行期内绑定(多态)的基础。因为一旦类的使用者依赖某个具体的类,那么对该依赖的扩展就无从谈起;而依赖某个抽象类,则只要实现了该抽象类的子类,都可以被类的使用者使用,从而实现了系统的扩展。但是,光有依赖倒置原则,并不一定就使我们的代 阅读全文
posted @ 2012-03-27 23:58 黄明恩 阅读(876) 评论(0) 推荐(0) 编辑
摘要: 转自:http://www.cnblogs.com/feipeng/archive/2007/03/02/661799.html一、OCP简介(OCP--Open-Closed Principle):Software entities(classes,modules,functions,etc.) should be open for extension, but closed for modification。软件实体应当对扩展开放,对修改关闭,即软件实体应当在不修改(在.Net当中可能通过代理模式来达到这个目的)的前提下扩展。Open for extension:当新需求出现的时候,可以通 阅读全文
posted @ 2012-03-27 23:35 黄明恩 阅读(294) 评论(0) 推荐(0) 编辑
摘要: 指令名称 : chown 使用权限 : root 使用方式 : chown [-cfhvR] [--help] [--version] user[:group] file... 说明 : Linux/Unix 是多人多工作业系统,所有的档案皆有拥有者。利用 chown 可以将档案的拥有者加以改变。一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的档案拥有者,也没有权限可以将自己的档案拥有者改设为别人。只有系统管理者(root)才有这样的权限。参数说明 user : 新的档案拥有者的使用者 ID group : 新的档案拥有者的使用者群体(grou... 阅读全文
posted @ 2012-03-27 11:47 黄明恩 阅读(7084) 评论(0) 推荐(0) 编辑
摘要: 查看文件权限的语句: 在终端输入:ls -l xxx.xxx(xxx.xxx是文件名) 那么就会出现相类似的信息,主要都是这些:-rw-rw-r-- 一共有10位数 其中:最前面那个-代表的是类型 中间那三个rw-代表的是所有者(user) 然后那三个rw-代表的是组群(group) 最后那三个r--代表的是其他人(other) 然后我再解释一下后面那9位数: r表示文件可以被读(read) w表示文件可以被写(write) x表示文件可以被执行(如果它是程序的话) -表示相应的权限还没有被授予 现在该说说修改文件权限了 在终端输入: chmod o w xxx.... 阅读全文
posted @ 2012-03-27 11:39 黄明恩 阅读(23300) 评论(0) 推荐(0) 编辑
摘要: 一、SRP简介(SRP--Single-Responsibility Principle):就一个类而言,应该只专注于做一件事和仅有一个引起它变化的原因。所谓职责,我们可以理解他为功能,就是设计的这个类功能应该只有一个,而不是两个或更多。也可以理解为引用变化的原因,当你发现有两个变化会要求我们修改这个类,那么你就要考虑撤分这个类了。因为职责是变化的一个轴线,当需求变化时,该变化会反映类的职责的变化。“就像一个人身兼数职,而这些事情相互关联不大,,甚至有冲突,那他就无法很好的解决这些职责,应该分到不同的人身上去做才对。”二、举例说明:违反SRP原则代码: modem接口明显具有两个职责:连接管理 阅读全文
posted @ 2012-03-26 23:48 黄明恩 阅读(1425) 评论(0) 推荐(0) 编辑