摘要: 1.里氏替换原则(Liskov Substiution Principl,LSP)如果要说里氏替换原则,就必须说继承,因为里氏替换原则就是继承的缺点的解决方案。继承好处l 代码共享,减少创建类的工作量,每个子类都拥有父类的方法和属性。l 提高代码的重用性l 父类可以形似父类,但又异于父类l 提高代码的可扩展性,很多开源框架的扩展接口都是通过继承父类完成的。l 提高产品或醒目的开放性继承缺点l 继承是入侵性。只要继承,就必须拥有父类的所有属性和方法l 降低代码的灵活性。子类必须拥有父类的属性和方法,让子类自由的世界中有了很多约束l 增强耦合性。当父类的常量、变量和方法发生更改时,就要考虑子类的修 阅读全文
posted @ 2012-05-15 22:25 ansionchen 阅读(202) 评论(0) 推荐(0)
摘要: 我最近学习设计模式:然后就开始我们的设计模式之旅1.单一职责原则(Single Responsibility Principle,SRP)单一职责的好处:l 类的复杂性降低,实现什么职责都有清晰明确的定义;l可读性提高,复杂性降低,那当然可读性提高了;l可维护性提高,可读性提高,那当然可读性提高了;l变更引起的风险降低,变更是必不可少的,如果接口的单一职责做得好,一个接口修改只对相应的实现类有影响,对其他的接口无影响,这对系统的扩展性,维护性都有非常大的帮助。但是单一职责受非常多因素制约,必须考虑工期、成本、人员技术水平、硬件情况、网络情况,政府政策、垄断协议等等。对于单一职责,建议是接口一定 阅读全文
posted @ 2012-05-15 22:23 ansionchen 阅读(118) 评论(0) 推荐(0)
摘要: 我最近学习设计模式:然后就开始我们的设计模式之旅1.单一职责原则(Single Responsibility Principle,SRP)单一职责的好处:l 类的复杂性降低,实现什么职责都有清晰明确的定义;l可读性提高,复杂性降低,那当然可读性提高了;l可维护性提高,可读性提高,那当然可读性提高了;l变更引起的风险降低,变更是必不可少的,如果接口的单一职责做得好,一个接口修改只对相应的实现类有影响,对其他的接口无影响,这对系统的扩展性,维护性都有非常大的帮助。但是单一职责受非常多因素制约,必须考虑工期、成本、人员技术水平、硬件情况、网络情况,政府政策、垄断协议等等。对于单一职责,建议是接口一定 阅读全文
posted @ 2012-05-15 22:23 ansionchen 阅读(165) 评论(0) 推荐(0)
摘要: 原理:用链表存储activity页面,然后当你退出的时候就按退出,把链表里面所有activity都关闭掉package com.by2n.application;import java.util.LinkedList;import java.util.List;import android.app.Activity;public class Application extends android.app.Application { @Override public void onLowMemory() { // TODO Auto-generated method stub super.o.. 阅读全文
posted @ 2012-05-15 22:12 ansionchen 阅读(136) 评论(0) 推荐(0)
摘要: 原理:用链表存储activity页面,然后当你退出的时候就按退出,把链表里面所有activity都关闭掉package com.by2n.application;import java.util.LinkedList;import java.util.List;import android.app.Activity;public class Application extends android.app.Application { @Override public void onLowMemory() { // TODO Auto-generated method stub super.o.. 阅读全文
posted @ 2012-05-15 22:12 ansionchen 阅读(145) 评论(0) 推荐(0)
摘要: 1.用户态线程: 由于内核并没有对多线程进程的支持,因此,内核中只有单线程进程的概念, 而多线程进程是通过一个和应用程序连接的函数库实现的。由于内核没有轻量 级进程(线程)的概念,因此它不能独立的对之进行调度,而是由一个线程运 行库来组织线程的调度,其主要工作在于在各个线程的栈之间调度。如果一个进程中的某一个线程调用了一个阻塞的系统调用,该进程就会被阻塞,当然该进程中的其他所有线程也同时被阻塞,因此UNIX使用了异步I/O机制。 这种机制主要的缺点在于在一个进程中的多个线程的调度中无法发挥多处理器的优势(如上述的阻塞情况)。 其优点包括: A(相对于进程操作而言)某些线程操作的系统消耗... 阅读全文
posted @ 2012-05-15 22:08 ansionchen 阅读(118) 评论(0) 推荐(0)
摘要: 1.用户态线程: 由于内核并没有对多线程进程的支持,因此,内核中只有单线程进程的概念, 而多线程进程是通过一个和应用程序连接的函数库实现的。由于内核没有轻量 级进程(线程)的概念,因此它不能独立的对之进行调度,而是由一个线程运 行库来组织线程的调度,其主要工作在于在各个线程的栈之间调度。如果一个进程中的某一个线程调用了一个阻塞的系统调用,该进程就会被阻塞,当然该进程中的其他所有线程也同时被阻塞,因此UNIX使用了异步I/O机制。 这种机制主要的缺点在于在一个进程中的多个线程的调度中无法发挥多处理器的优势(如上述的阻塞情况)。 其优点包括: A(相对于进程操作而言)某些线程操作的系统消耗... 阅读全文
posted @ 2012-05-15 22:08 ansionchen 阅读(195) 评论(0) 推荐(0)
摘要: 在使用ListView时,会遇到当ListView列表滑动到最底端时,添加新的列表项的问题,本文通过代码演示如何动态的添加新的列表项到ListView中。实现步骤:调用ListView的setOnScrollListener()方法设置滑动监听器,实现OnScrollListener接口的方法,判断当列表滑动到最低端时,加载新的列表项。其中OnScrollListener接口需要实现如下两个方法:onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount)view 报告滑动状 阅读全文
posted @ 2012-05-15 22:06 ansionchen 阅读(159) 评论(0) 推荐(0)
摘要: 在使用ListView时,会遇到当ListView列表滑动到最底端时,添加新的列表项的问题,本文通过代码演示如何动态的添加新的列表项到ListView中。实现步骤:调用ListView的setOnScrollListener()方法设置滑动监听器,实现OnScrollListener接口的方法,判断当列表滑动到最低端时,加载新的列表项。其中OnScrollListener接口需要实现如下两个方法:onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount)view 报告滑动状 阅读全文
posted @ 2012-05-15 22:06 ansionchen 阅读(155) 评论(0) 推荐(0)
摘要: 做Android布局是件很享受的事,这得益于他良好的xml方式。使用xml可以快速有效的为软件定义界面。可是有时候我们总感觉官方定义的一些基本组件不够用,自定义组件就不可避免了。那么如何才能做到像官方提供的那些组件一样用xml来定义他的属性呢?现在我们就来讨论一下他的用法。1、添加文件attrs.xml,位于res\values目录下:<?xmlversion="1.0"encoding="utf-8"?> <resources> <declare-styleablename="myView"> & 阅读全文
posted @ 2012-05-15 21:36 ansionchen 阅读(173) 评论(0) 推荐(0)