转至http://www.cnblogs.com/qianxudetianxia/archive/2011/07/29/2121547.html
=======================2011-08-26==================================
有时候,最难的是坚持;有时候缺少的是信念。
=======================2011-08-07==================================
从接触设计模式到如今大概4年左右的时间,一直都想有朝一日定要精通,坐于床头,侧望左右,设计模式的书买了7,8本了,也看了很多参考和视频,也用到了一些。但是今天我终于停下来,停下来梳理,停下来欣赏,也停下来反省,总之,我今天停下来了,是为了走的更好,走的更远。
如果有幸我能够把这个系列写到23+N,我想至少我的技术上会为我增色不少,会为我带来更强烈的信心;
如果有幸我能够把这个系列写到23+N,我想至少我去买者方面书籍的时候,我不会那么动心了,我也许不深,你也未必;
如果有幸我能够把这个系列写到23+N,我想至少后面架构和android的底层我会更加了解,我会看的更清楚,也看的更远。
我自己也是这么想得,所以我会坚持,我要把这个进行到底,写下去,写完23,我写+N,写完SDK,我写别人的开源项目,写完开源,我写我个人项目,写完个人项目,我写我自己的开源项目,至少我要写到我认为我应该继续写的时候,我如是想,也如是做!
我就是这么想的!
=======================2011-07-29==================================
看了很多年的设计模式,也看了很多种设计模式,也在工作中用了几个常见的设计模式。
android中,包括源码和一些开源项目,用到了很多经典设计模式,而且也用的非常的精彩。
学习android也有一些日子了,有空的时候看看源代码,看看开源项目的代码,自己也会再工作中写写代码。
今天,斗胆,基于android(其实就是java),把自己对设计模式的一些粗浅认识,默默的分享出来,希望能得到各位同仁的指点,以期设计能力更进一步。
我将以《设计模式:可复用面向对象软件的基础》为准,发掘android中各种设计模式的使用情况,提取核心部分,做为实例。
因为不需要写代码,应用场景又一般是android中自带的,所以文中可能会注重意图介绍和UML结构图的绘制,然后具体设计模式的本身和扩展还需要各位参考其他资料。
下面我列举一些重要的认识点:
设计模式,提供了很多软件工程问题所需处理的解决方案。
根据模式的目的可分为3类:
1.创建型模式:与对象的创建有关。
2.结构性模式:处理类与对象的组合。
3.行为性模式:对类或对象怎样交互和怎样 分配职责进行描述。
面向对象设计的2个基本原则:
1.针对接口编程,而不是针对实现编程。
2.优先使用对象组合,而不是类继承。
面向对象设计的5个设计原则:
1.单一职责原则(SRP)
2.开放封闭原则(OCP)
3.Liskov替换原则(LSP)
4.依赖倒置原则(DIP)
5.接口隔离原则(ISP)
23中设计模式:
1.创建型模式:
(1).工厂方法模式
(2).抽象工厂模式
(3).创建者模式
(4).原型模式
(5).单例模式
2.结构型模式:
(6).适配器模式
(7).桥模式
(8).组合模式
(9).装饰模式
(10).外观模式
(11).享元模式
(12).代理模式
3.行为型模式
(13).解释器模式
(14).模板方法模式
(15).职责链模式
(16).命令模式
(17).迭代器模式
(18).中介者模式
(19).备忘录模式
(20).观察者模式
(21).状态模式
(22).策略模式
(23).访问者模式
除此之外,后来人发现很多新的模式,如空模式等。
下面列举几个常见的问题导致重新设计,可能需要设计模式来分析解决:
1.通过显示的指定一个类来创建对象
2.对特殊操作的依赖
3.对硬件和软件平台的依赖
4.对对象表示或实现的依赖
5.算法依赖
6.紧耦合
7.通过生产子类来扩展功能
8.不能方便的对类进行修改
软件的设计臭味:
1.僵化性
2.脆弱性
3.顽固性
4.粘滞性
5.不必要的复杂性
6.不必要的重复
7.晦涩性
... ...
总而言之,一句话,面向对象特性+原则+模式,折腾来折腾去就是这么个回事。
相关推荐
开篇我想上两幅图,是Objective-C ...------设计模式的前奏----UMLUML(UnitedModelingLanguage),统一建模语言,是一种基于面向对象的可视化建模语言.UML采用了一组形象化的图形(如类图)符号作为建模语言,
文章开篇总结性文章:《Android 一共有多少种动画?准确告诉你!》 Ⅰ. View Animation / 视图动画 English explanation can go to read this article Ⅱ. Drawable Animation / 帧动画 / Frame 动画 English ...
01-提交版-开篇-书籍a课程介绍.pdf
PHP开篇-教学设计
PCB设计的十大误区-开篇引言pdf,先哲告诉我们,道法器术,学习要从道理和方法开始。现在社会是快餐型的学习方式,互联网时代,从来都不缺资料,缺的是一颗沉下来慢慢学习的心。“高速先生”一直以来坚持用简单浅显的...
【课程思政案例】网络综合应用——PHP开篇--合作共赢.pdf
WinForm界面开发之酒店管理系统--开篇.pdf
PHP程序设计基础第1章-PHP开篇.pptx
1、Kubernetes 开篇-V1.pdf
20210827-德邦证券-“专精特新”系列研究开篇:“专精特新”中觅“单项冠军”.pdf
开篇.pdf 继承、封装、多态.pdf 备忘录模式.pdf 工厂模式.pdf 模板模式.pdf 中介者模式.pdf 策略模式.pdf 观察者模式.pdf 桥接模式.pdf 装饰模式.pdf 抽象工厂模式.pdf 适配器模式.pdf 状态模式.pdf 代理...
20210317-德邦证券-A股投资者微观结构系列开篇:投资者主体定价权的迁移与转变.pdf
引言作为开篇部分,我们将探讨关于本次图神经网络组队学习的几个问题:首先我们将讨论为什么我们要关注图深度学习?具体地,为什么我们要把现实世界的数据表示成图,为什么
$ ls 备忘录模式.pdf 工厂模式.pdf 模板模式.pdf 中介者...迭代器模式.pdf 开篇.pdf 原型模式.pdf 访问者模式.pdf 命令模式.pdf 责任链模式.pdf $ http://blog.csdn.net/feixiaoxing/article/category/951264的mirror
《界面设计模式(第2版)》开篇即总结了“与人有关”的各类问题,为读者提供了界面设计总体思路上的指引,帮助读者举一反三。 接下来,《界面设计模式(第2版)》收集并分析了很多常用的界面设计模式,帮助读者...
, 本书开篇即总结了“与人有关”的各类问题,为读者提供了界面设计总体思路上的指引,帮助读者举一反三。, 接下来,本书收集并分析了很多常用的界面设计模式,帮助读者理解在实现级别的各种常用解决方案,将它们灵活...