Android Ap 开发 设计模式第三篇:模板方法模式
Template Method Pattern
模板的含义
所谓模板,有用过VS的朋友会比较熟悉,这个IDE将一些统一的代码编写方法制作成模板加载在IDE里面,开发者可以根据自己制作的模板或者微软提供的模板比如Asp.net 、Winform 、WPF开发等各种模板。而Android 建立项目初期生成的Project 也可以当作是一个模板。它是将原先定义好的东西事先写好了一套规范,具体要如何使
http://cyqdata.cn/cnblogs/article-detail-41405
GoF著作中未提到的设计模式(3):Null Object
Null Object模式的目的包括:
1. 当对象提供者无法提供指定类型的对象时, 返回一个什么都不做的对象, 这对调用者是透明的,并且调用者不用判断获得的对象是否为null了,当然,对象提供者必须告知调用者(通过约定等).
2. 有时候需要传递一个什么都不做的某个类型的对象给合作方. 例如某个函数需要实现特定接口的对象(通过参数传入)进行某些操作, 该函数的调用者在某些情况下希望不进行这些操
http://cyqdata.cn/cnblogs/article-detail-41367
Android Ap 开发 设计模式第二篇:适配器模式
Adapter Pattern 适配器模式
似曾相识
做过Android Ap开发的朋友一般情况下都会用到Google 提供的BaseAdapter 适配器做扩展,用来填充ListView、GridView 等窗口控件。用过的朋友都会觉得很简单很方便就可以对控件做一个数据源。而BaseAdapter 正是一个适配器,Google 考虑到适配器的一个特性则可以如此概括用 “既有内容&
http://cyqdata.cn/cnblogs/article-detail-41322
Android Ap 开发 设计模式第一篇:迭代器模式
Iterator Pattern迭代器模式
场景猜想
经常编写代码都会碰到遍历一个数组,使用for循环得到数组下标之后去做进一步操作。例如下文代码:
int[] array=new int[5]; for(int i=0;i<array.
http://cyqdata.cn/cnblogs/article-detail-41264
【原创·教程·连载】《Android之大话设计模式》--设计模式之行为型模式 第十四章:模板方法模式 人的一生应该这样度过
<大话设计模式>
本教程说明及版权声明
国士工作室是一支专注于Android平台企业级应用开发的技术团队,致力于做中国最棒的Android应用程序开发机构,提供最棒的Android企业级应用开发培训服务。
企业培训和开发合作官方联系方式:
电话:18610086859
Email:hiheartfirst@
http://cyqdata.cn/cnblogs/article-detail-40822
【原创·教程·连载】《Android之大话设计模式》--设计模式之结构型模式 第十三章:组合模式 MM的生日礼物
<大话设计模式>
本教程说明及版权声明
国士工作室是一支专注于Android平台企业级应用开发的技术团队,致力于做中国最棒的Android应用程序开发机构,提供最棒的Android企业级应用开发培训服务。
企业培训和开发合作官方联系方式:
电话:18610086859
Email:hiheartfirst@
http://cyqdata.cn/cnblogs/article-detail-40297
C#面向对象设计模式纵横谈:Visitor 访问者模式
类层次结构的变化
类层次结构中可能经常由于引入新的操作,从而将类型变得脆弱……
动机(Motivation)
在软件构建过程中,由于需求的改变,某些类层次结构中常常需要增加新的行为(方法),如果直接在基类中做这样的更改,将会给子类带来很繁重的变更负担,甚至破坏原有设计。如何在不更改类层次结构的前提下,在运行时根据需要透明地为类层次结构上的各个类动态添加新的
http://cyqdata.cn/cnblogs/article-detail-40218
GoF著作中未提到的设计模式(1): Archetype
GoF著作中未提到的设计模式(1):Archetype 半天也没能给这个设计模式想出一个中文名称,算了,有时候还是原版的更容易理解。 简单地说,Archetype设计模式的目的是将业务处理逻辑和具体实现分离,所以至少需要两个参与者:Decorator和Delegate,它们都实现同一个接口,Decorator负责处理业务逻辑,而Delegate负责具体的实现,在Decora
http://cyqdata.cn/cnblogs/article-detail-40124
如何正确的对待设计模式——我的观点
自从接触设计模式以来,一般看到的评论是以推崇为多。不过比较欣慰的是,最近在看《编程人生》中,有两个人对设计模式比较不屑。 之所以欣慰,并不是因为凑个热闹看他们互相攻击,互相批评——而是因为出现了不同的观点,特别是两位非常有分量的人物的观点。在技术领域,众口一词是一件非常恐怖的事情;百花齐放百家争鸣才是我们乐于看到的。因为不同观点的出现,特别是大师级的不同观点,能够促进更多的人去独立的思考与探
http://cyqdata.cn/cnblogs/article-detail-40059
系统架构技能之设计模式—代理模式
一、上篇回顾
很久没有更新设计模式系列的文章了,有了很多热心朋友的反馈,我决定继续将这个系列赶快写完,最近由于过年了,有很多相关的事宜要做,所以没有时间来写,也是对大家的说下抱歉,感觉写文章的时间越来越少了,不过我会努力,尽快将这个系列写完,与大家共勉,希望大家有什么意见或建议,都可以帮我提出来,我好改进,谢谢!。
本文主要是讲述设计模式中的结构性模式中的最后一个本系列讲述的模式,也是经常
http://cyqdata.cn/cnblogs/article-detail-39923
设计模式学习笔记:就一句话的创建实例是如何演变成工厂模式的?
工厂方法模式定义 Defines an interface for creating an object,but let subclasses decide which class to instantiate. Factory Method lets a class defer instantiation to subclasses 一般java创建一
http://cyqdata.cn/cnblogs/article-detail-39852
C#面向对象设计模式纵横谈:Strategy 策略模式
算法与对象的耦合
对象可能经常需要使用多种不同的算法,但是如果变化频繁,会将类型变得脆弱……
动机(Motivation)
在软件构建过程中,某些对象使用的算法可能多种多样,经常改变,如果将这些算法都编码到对象中,将会使对象变得异常复杂;而且有时候支持不使用的算法也是一个性能负担。如何在运行时根据需要透明地更改对象的算法?将算法与对象本身解耦,从而避免上述
http://cyqdata.cn/cnblogs/article-detail-39679
[设计模式]在CodeDom代码生成中使用Decorator模式实现类型创建
我估计从博客园建站开始,就不断地有文章对设计模式进行讨论了。设计模式被认为是软件工程的基础,是面向对象分析与设计的指南。博客园中不乏大量的优秀文章,针对设计模式中创建型模式、结构型模式以及行为型模式共计23种模式进行讨论,有的文章也自成体系,以不同的角度来分析各种模式的应用场景和动态特性。今天,我也在所有设计模式专家面前班门弄斧一次,冒着被喷的危险,谈谈Decorator模式的具体应用。与大多数其
http://cyqdata.cn/cnblogs/article-detail-39594
【原创·教程·连载】《Android之大话设计模式》--设计模式之结构型模式 第十一章:代理模式 QQ聊天机器人
<大话设计模式>
本教程说明及版权声明
国士工作室是一支专注于Android平台企业级应用开发的技术团队,致力于做中国最棒的Android应用程序开发机构,提供最棒的Android企业级应用开发培训服务。
企业培训和开发合作官方联系方式:
电话:18610086859
Email:hiheartfirst@
http://cyqdata.cn/cnblogs/article-detail-39458
穿越的故事 设计模式之我见
23种设计模式 之组合模式
一、定义
将对象组合成树形结构以表示“部分--整体”的层次结构,使得用户对单个对象和组合的使用具有一致性。
二、优点
高层模块调用简单,子节点增加方便
三、故事开始(代码示例)
李实名要开餐馆,地点和房子都选好了,可是人手还不够,于是李实名开始着手寻揽着一些好的下属,经过几天的寻找,人手终于被他全部找到了,分别是曹草,空明,紫龙,允常
http://cyqdata.cn/cnblogs/article-detail-39453
C#面向对象设计模式纵横谈:Prototype 原型模式
依赖关系的倒置
抽象不应该依赖于实现细节,实现细节应该依赖于抽象。-抽象A直接依赖于实现细节b(软件易脆,很容易需要重新编译)
-抽象A依赖于抽象B,实现细节b依赖于抽象B
动机(Motivation)
在软件系统中,经常面临着“某些结构复杂的对象”的创建工作;由于需求的变化,这些对象经常面临着剧烈的变化,但是它们却拥有比较稳定一致的接口。如何应对这
http://cyqdata.cn/cnblogs/article-detail-39409
C#面向对象设计模式纵横谈:Decorator 装饰模式
子类复子类,子类何其多
假如我们需要为游戏中开发一种坦克,除了各种不同的型号的坦克外,我们还希望在不同场合中为其增加以下一种或多种功能:比如红外线夜视功能,比如水陆两栖功能,比如卫星定位功能等等。
如果再添加一种功能D,那么需要增加的T50子类的数量可想而知,而这只是T50这个类型,如果还有其他T70等类型,那么需要新添加的子类将不可计数。
动机(Motivation)
上述描
http://cyqdata.cn/cnblogs/article-detail-39164
《模式——工程化实现及扩展》(设计模式C# 版)《连贯接口 Fluent Interface》——“自我检验"参考答案
转自:《模式——工程化实现及扩展》(设计模式C# 版) http://www.cnblogs.com/callwangxiang/ http://www.cnblogs.com/callwangxiang/archive/2011/05/31/ExerciseAAFluentInterface.html的参考答案 &nb
http://cyqdata.cn/cnblogs/article-detail-38812
C#面向对象设计模式纵横谈:Iterator 迭代器模式
集合内部结构与外部访问
动机(Motivation)
在软件构建过程中,集合对象内部结构常常变化各异。但对于这些集合对象,我们希望在不暴露其内部结构的同时,可以让外部客户代码透明地访问其中包含的元素;同时这种“透明遍历”也为“同一种算法在多种集合对象上进行操作”提供了可能。
使用面向对象技术将这种遍历机制抽象为“迭代器对象&
http://cyqdata.cn/cnblogs/article-detail-38638
如何向妻子解释设计模式
简介
自上篇翻译<如何向妻子解释OOD>后收到了很好的反应。故特继续翻译作者的<How I explained Design Patterns to my wife: Part 1>一文,以飨读者。在此文中,作者依旧通过与妻子浅显易懂的对话,向读者解释了什么是设计模式。
设计模式是什么?
Shubho:通过我们关于面向对象设计原则(OODP,即SOLID原则)的对话,我
http://cyqdata.cn/cnblogs/article-detail-38628