zoukankan      html  css  js  c++  java
  • Android设计模式系列(0)开篇

    =======================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.晦涩性 
    ... ...
    总而言之,一句话,面向对象特性+原则+模式,折腾来折腾去就是这么个回事。

  • 相关阅读:
    给pdf文件添加防伪水印logo(附工程源码下载)
    关于正则,那些年一直存在的疑惑解答(正则菜鸟不容错过)
    那些年用过的一些前端框架
    优化Javascript数据遍历
    PHP5 mysqli 教程
    程序员一年工作经验之谈
    TCP协议的性能评测工具 — Tcpdive开源啦
    VMware Tools (ubuntu系统)安装详细过程与使用
    利用BBRSACryptor实现iOS端的RSA加解密
    Spring AOP详解(转载)
  • 原文地址:https://www.cnblogs.com/qianxudetianxia/p/2121547.html
Copyright © 2011-2022 走看看