设计原则和模式

设计模式

单一性原则

一个类只干一件事情

从 Activity 中剥离 Adapter

开闭原则

对扩展开放,对修改封闭

从 switch-case 谈起

里氏替换原则

父类,子类?

对多态的重新认识,子类不覆盖父类方法

白马与马

依赖倒置原则

依赖于抽象,而不是依赖于具体

模版方法

从 WebService 到 JSON

接口隔离原则

类之间的依赖,建立于最小粒度的接口

看人下菜碟

宽窄接口

迪米塔法则

不要和陌生人说话

总结

组合,还是继承?

可插拔技术

面向接口编程

创建型设计模式

简单工厂

Android 中的使用场景:Activity 的 onCreate 方法

Android 中的一个例子:文件存储

工厂模式

简单工厂与工厂的微小区别

反射与工厂模式的配合

抽象工厂模式

与工厂模式的区别

文件存储的抽象工厂实现

单例模式

序列化

多例

Android 中的使用场景:ImageLoader

原型模式

浅拷贝和深拷贝

一个例子:孙悟空的分身

Android 中的使用场景:Intent

生成器模式

编写一个例子:绘制笑脸

变体:Director 的蜕化

Android 中的使用场景:AlertDialog

构造型设计模式(1)

适配器模式

类适配器和对象适配器一个例子:变压器

Android 中的使用场景:Adapter

桥接模式

两个维度的简单工厂

加法,还是乘法?

在 Android 中的应用:ListVIew 和 Adapter

编写一个例子:蜡笔与水彩笔

代理模式

在 Android 中的实现:Binder 与 AIDL

静态代理和动态代理

远程代理

虚拟代理

保护代理

智能引用Android 插件化的一种实现方式:静态代理

构造型设计模式(2)

组合模式

温习一下递归算法

实现的两种方式一个现实中的例子:山上有座庙

一个现实中的例子:文件夹与文件

Android 中的使用场景:View 和 ViewGroup

享元模式

不变模式

享元是多例与不变模式的组合

自己编写一个例子:围棋

Android 中的使用场景:String

装饰器模式

编写一个例子:炒菜自定义 BaseActivity 基类

Android 中的使用场景:ContextWrapper

外观模式

现实中的例子:手机界面

Android 中的使用场景:Context 和 ContextImpl

行为型设计模式(1)

职责链模式

在 Android 中的应用:事件分发机制

写一个例子:游戏中的伤害计算

模版方法模式

在 Android 中的应用 1:AsyncTask

在 Android 中的应用 2:Activity 的生命周期函数

命令模式

例子 1:玉皇大帝派太上老君封孙悟空为齐天大圣

回滚(undo)

在 Android 中的应用 1:AAPT

备忘录模式

回滚机制的另一种实现

例子:单机游戏的保存和加载

宽窄接口:IMemento在 Android 中的应用:onSaveInstanceState

行为型设计模式(2)

迭代器模式

外部迭代器和内部迭代器

在 Android 中的应用:Cursor

策略模式

在 Android 中的应用:动画

在 Android 中的应用 2:Comparator

例子:商品打折

观察者模式

例子:RSS

在 Android 中的应用 1:Adapter 的 notifyDataSetChanged 方法

在 Android 中的应用 2:BroadcastReceiver

在 Android 中的应用 3:事件总线 EventBus

中介者模式

在 Android 中的应用:Activity

中控件间通信

编写一个例子:房产中介

与观察者的联系

状态模式

写一个例子:变形金刚

在 Android 中的应用:View 的 onVisibilityChanged 方法

在 App 中的应用:用户登录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值