- 博客(7)
- 资源 (7)
- 收藏
- 关注
原创 Android轻量级指针 强指针 弱指针
这3种指针,在这篇博客http://blog.csdn.net/luoshengyang/article/details/6786239中讲的比较详细。我们这边自己再重新梳理,总结下。这3种指针都是基于计数器的原理完成的。一、轻量级指针我们先来看第一个,LightRefBase类的实现在system/core/include/utils/Refbase.h中实现的templ
2016-08-23 11:08:56 1903
转载 wait waitpid函数使用
#include /* 提供类型pid_t的定义 */#include pid_t wait(int *status)进程一旦调用了wait,就立即阻塞自己,由wait自动分析是否当前进程的某个子进程已经退出,如果让它找到了这样一个已经变成僵尸的子进程,wait就会收集这个子进程的信息,并把它彻底销毁后返回;如果没有找到这样一个子进程,wait就会一直阻塞在这里,直到有一个出
2016-08-19 10:29:13 955
原创 Head First 工厂模式
工厂模式:当代码中有很多具体类的创建,可能就有问题。像下面这段代码,就有很多实例创建,当哪天需要修改,就要改动源码。这对代码的维护和更新代价较大。Duck duck;if (pinic) { duck = new MallardDuck();} else if (hunting) { duck = new DecoyDuck();} else if (inBathTub) {
2016-08-10 14:46:46 776
原创 Head First 装饰者模式
装饰者模式:举个例子:辛巴克咖啡指定价格系统。有一个Beverage的基类,然后各个子类有自己价格。但是现在要加入各种调料,比如soy Mocha等第一种方法可以做好多类,比如HouseBlendwithSoy等显然这不是种好方法,一个这会产生好多类,还有当我们的价格发生变化时,就要修改好多类。第二种方法可以在父类中添加各种调料的bool,然后在计算价格的时候算进去。但是当我们
2016-08-07 16:26:52 649
原创 Head First 观察者模式
观察者模式:我们先举个例子,我们要做一个气象站。Weather对象知道如何跟物理气象站联系,以取得更新数据。只要温度、湿度、气压一变,所有显示装置都要重新显示。public class WeatherData { public void measurementsChanged() { float temp = getTemperatrue();//获取数据 float hum
2016-08-07 14:09:25 584
原创 Head First 策略模式
以前看过Head First设计模式这本书,时间长了温习下,顺便写下博客总结下:我们先来看下这个例子:uml图如下,做了一个鸭子的游戏。有各种鸭子,可以游泳,叫,还有各种显示。因此做了一个Duck的父类,子类只有display不一样。现在,需要定义一些会飞的鸭子,但是也有比如玩具鸭不会飞。那我们应该怎么实现呢?有几种方法1. 如果我们在Duck中添加fly方法,那么所有的子类都会飞
2016-08-06 14:55:28 661
原创 Activity WMS ViewRootImpl三者关系(Activity创建窗口 按键分发等)
今天我们来梳理下Activity ViewRootImpl和WMS三者的关系,这里面看了网上的博客,也看了一些书,加上自己的总结,写了这篇博客。1. Activity我们先来看Activity,在ActivityThread中的performLaunchActivity函数中, 先创建了Activity,然后调用了Activity的attach函数 ......
2016-08-02 15:10:58 9518
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人