模式
kc专栏
深入探索android Framework层代码,博客持续更新中!!!
展开
-
Android MVC模式实例(一)
很多Android的入门书籍,在前面介绍完布局后就会逐个介绍组件,然后开始编写组件使用的例子。每每到此时小伙伴们都可能会有些疑问:是否应该先啃完一本《Java编程思想》学点 Java 知识呢?这些组件会使用了,但如何更好组织起来呢? 其实,Android 和 iOS 已经把应用层级别的东西封装得比较简单易用,也配有丰富的文档与之对应,所以倒不必担心如何使用。而实际上,我想让大家通过这转载 2015-11-04 14:50:58 · 5144 阅读 · 0 评论 -
Head First 观察者模式
观察者模式: 我们先举个例子,我们要做一个气象站。 Weather对象知道如何跟物理气象站联系,以取得更新数据。只要温度、湿度、气压一变,所有显示装置都要重新显示。 public class WeatherData { public void measurementsChanged() { float temp = getTemperatrue();//获取数据 float hum原创 2016-08-07 14:09:25 · 584 阅读 · 0 评论 -
Head First 装饰者模式
装饰者模式: 举个例子: 辛巴克咖啡指定价格系统。有一个Beverage的基类,然后各个子类有自己价格。但是现在要加入各种调料,比如soy Mocha等 第一种方法可以做好多类,比如HouseBlendwithSoy等显然这不是种好方法,一个这会产生好多类,还有当我们的价格发生变化时,就要修改好多类。 第二种方法可以在父类中添加各种调料的bool,然后在计算价格的时候算进去。但是当我们原创 2016-08-07 16:26:52 · 649 阅读 · 0 评论 -
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 阅读 · 0 评论 -
Head First 适配器模式
适配器模式:将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。 回想之前博客中鸭子的例子,这里有一个鸭子的接口,和一个鸭子的子类。 public interface Duck { public void quack(); public void fly(); } public class MallardDuck implements Duck原创 2016-09-24 10:34:48 · 458 阅读 · 0 评论 -
Head First 命令模式
这章我们来看下命令模式,从一个例子开始,我们想做一个遥控器,这个遥控器可以控制灯、电视、风扇、CD机等等,并且还有一个撤销键。这里我们就可以利用命令模式来很好的完成这个遥控器。 我们来看下一般命令模式的流程: 1.首先客户负责创建命令对象。命令对象一般有一个execute函数,代表这个命令要完成的事情 2.客户把命令放在一个控制器中。类似调用控制器的setCommand函数 3.最后控制器原创 2016-09-23 16:48:50 · 584 阅读 · 0 评论 -
MVC模式
缘由 之前安居客iOS app的第二版架构大部分内容是我做的,期间有总结了一些经验。在将近一年之后,前同事zzz在微信朋友圈上发了一个问题:假如问你一个iOS or Android app的架构,你会从哪些方面来说呢? 当时看到这个问题正好在乘公车回家的路上,闲来无聊就答了一把。在zzz在微信朋友圈上追问了几个问题之后,我觉得有必要开个博客专门来讲讲一些个人见解。 其实对于iOS客户转载 2015-11-04 14:37:07 · 723 阅读 · 0 评论 -
Android MVC模式实例(三)
上篇文章中,我们将 View 类单独出来并完成了设计和编写。这次我们将完成 Model 类,并通过 Controller 将两者连接起来,完成这个计算器程序。 模型(Model)就是程序中封装了数据,并定义了操作和处理这些数据的逻辑的对象。在计算器的例子中,就是处理输入的操作数和运算符,并计算返回结果。Let’s Go (注意:示例中直接使用 double 类型来处理数据,但严格来转载 2015-11-04 15:01:50 · 971 阅读 · 0 评论 -
Android MVC模式实例(二)
MVC 模式的最基本概念是分层设计,把我们的代码基于 View(视图)、Model(模型)、Controller(控制器)进行分类封装,这样做的目的是为了清晰结构,使代码更易维护和扩展。 在上一篇文章中,我们完成了计算器的界面还原,但严格来说并不是真正的 View 类,因为它还没反映视图的逻辑。在这次文章中,我们将编写计算器程序的 View 部分,Let’s Go! (注意:这次在转载 2015-11-04 14:58:24 · 1828 阅读 · 0 评论 -
Head First 策略模式
以前看过Head First设计模式这本书,时间长了温习下,顺便写下博客总结下: 我们先来看下这个例子:uml图如下,做了一个鸭子的游戏。有各种鸭子,可以游泳,叫,还有各种显示。因此做了一个Duck的父类,子类只有display不一样。 现在,需要定义一些会飞的鸭子,但是也有比如玩具鸭不会飞。那我们应该怎么实现呢?有几种方法 1. 如果我们在Duck中添加fly方法,那么所有的子类都会飞原创 2016-08-06 14:55:28 · 661 阅读 · 0 评论