摘要: Android中的Content Provider可以实现在权限许可的情况下,在多个应用程序之间共享数据。Android还提供了一些主要数据类型如音频、视频、图片和私人通讯录等现成的Content provider类。当然,如果我们想让我们应用程序的数据公有化,使其它应用也可以访问,那么,我们可以实现一个自己的ContentProvider类。阅读全文
12 2011 档案
摘要: (根据MSDN Webcast 相关课程整理) 直接与间接: 对于复杂的系统,我们常常在使用时添加一个中间层,从而屏蔽一些不常用的功能,或简化一些常用功能等,从而达到用简单灵活的方法满足特定的需要的...阅读全文
摘要: (根据MSDN Webcast 相关课程整理) 面向对象很好的解决了系统抽象的问题,同是不会损害系统的性能。但是在某些特殊应用中,由于对象的数量太大,采用面向对象会给系统带来难以承受的内在开销。 比如...阅读全文
摘要: 1,采用Shared Preferences: 一句话实现保存Android应用程序配置信息: 保存:getPreferences(Activity.MODE_PRIVATE).edit().putString(strKey,strValue).commit(); 读取:strValue=getPreferences(Activity.MODE_PRIVATE).getString(strKey,strDefault); 注:应用内不同Activity之间的配置数据共享使用getSharedPreferences()。 2,采用File: Files 数据存储主要是使用 Pr...阅读全文
摘要: (根据MSDN Webcast相关课程整理) 先看以下实例: 左边的方案中客户调用程序与子系统内部的具体实现类具有较多的耦合与交互。显然是不理想的设计方案。随着外部客户程序和各子系统的演化,这种过多的...阅读全文
摘要: 1,快速排序 : 快速排序具有神奇的排序效率,平均状况下它的时间复杂度为Ο(nlogn),但它通常明显比其他Ο(nlogn)的算法更快。快速排序概括起来三步:找基准,通常为序列首尾元素;与基准比较后左...阅读全文
摘要: (根据MSDN Webcast相关课程整理) 假设场景:游戏中的坦克不仅具有类型的不同,可能同一种坦克也会有不同,如我们可能会希望为某种类型的坦克,如T50,增加(扩展)一种或多种新功能。如果增加红外...阅读全文
摘要: (根据MSDN Webcast相关课程整理) 由俄罗斯套娃讲起。娃娃里又包含另一个娃娃,最后那个不包含任何娃娃。 组合模式,采用树型结构来实现普遍存在的对象容器,将本原一对多的复杂的关系,转换成一对一...阅读全文
摘要: 根据MSDN Webcast相关课程整理) GoF:将抽象部分与实现部分分离,使它们都可以独立地变化。 如下图所示: 显然,当实现细节b易变时,我们通常考虑采用原型模式来构造系统。然而,当抽象B由于...阅读全文
摘要: 根据MSDN Webcast相关课程整理) 适配:在不改变原有实现的基本上,将原先不兼容的接口转换成兼容的接口。 GoF:将一个类的接口转换成客户需要的另一个接口,便得原来由于接口不兼容而不能一起工作...阅读全文
摘要: (根据MSDN Webcast相关课程整理) 耦合关系直接决定软件面对变化时的行为。 紧耦合时,当一个模块变化时,相关模块都要随之更改;依赖关系复杂 松耦合时,模块更容易被替换或更改,而其他相关模块...阅读全文
摘要: (根据MSDN Webcast相关课程整理) 依赖关系倒置原则: 抽象不应该依赖于实现细节,实现细节应该依赖于抽象。实现细节往往易变。 抽象A直接依赖于实现细节b: 抽象A依赖于抽象B,实现细节b依赖于抽象B: 原型设计模式:经常面临某些结构复杂对象的构建工作,由于需求的变化,这些对象也面临剧烈变化。我们需要隔离这些易变对象,从而使得对象的变化时而不影响客户程序对这些对象的调用。 ...阅读全文
摘要: (根据MSDN Webcast相关课程整理) 生成器模式的缘起: 一个类中主结构(将各个成员组合在一起的构建方法)基本稳定,但内部的几个组成部分可能经常存在变化。 GOF:将一个复杂对象的构建与其表示相分开,使得同样的构建过程可以创建不同的表示。 构成主类的某引动部分成员PartA和B是常变化的,而创建器的算法方式不变,客户程序通过Director的Construct方法,传入不同的生成器,从而...阅读全文
摘要: (根据MSDN Webcast相关课程整理) new的问题:实现依赖,不能应对具体实例化类型的变化。(当实例对象发生变化时,无法满足需求) 例: 当Road发生容易发生变化时,如有可能变成MudRoad时,需要修改系统中所有new 到Road的地方。 解决思路: 封闭变化点——哪儿变化封闭哪儿;如果new的类型比较稳定,基本没有变化时,就不需要封装啦。 创建的对象容易发生变化,因此就要封装对象创...阅读全文
摘要: 模式分类:
从目的来看:
创建型(Creational):负责对象的创建
结构型(Structural):处理类与对象间的组合
行为型(Behavioral):类与对象交互中的职责分配
从范围来看:
类模式:处理类与子类的静态关系
对象模式:处理对象间的动态关系阅读全文
摘要: (根据MSDN Webcast相关课程整理) 模式:提供重复发生的问题的解决方法的核心。 设计模式:软件设计过程中某一类问题的一般性解决方案。 面向对象设计模式:面向对象设计过程中、特定场景下,类与相...阅读全文

