关闭

WindowManager addView弹窗功能

touch here android在WindowManager添加View 作者:feiyangxiaomi事情的起因 为什么选择WindowManageraddView 代码实现 显示PopupAction代码 本文的目标点 WindowManager和WindowManagerLayoutParams WindowManageraddView的动画效果 参考 1. 事情的起因项目的...
阅读(7888) 评论(1)

Creational模式之Prototype模式

1.意图 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 2.别名 无 3.动机 类似于linux命令中的cat fileA > fileB,实现文件的拷贝。 4.适用性 以下情况使用Prototype模式: 当要实例化的类是在运行时刻指定时,例如,通过动态装载。 5.结构 原型模式虽然是创建型的模式,但是与工程模式没有关系,从名字即可看出,该模式的思...
阅读(671) 评论(0)

Creational模式之Builder模式

1.意图将一个复杂对象的构建与它表示分离,使得同样的构建过程可以创建不同的表示。 查看更多请点击2.别名无3.动机一个RTF(Rich Text Format)文档交换格式的阅读器应能将RTF转换为多种正文格式。该阅读器可以讲RTF文档转化成不同ASCII文本或转换成一个能以交互方式编辑的正文窗口组件。但问题在于可能转换的数目是无限的。因此要能够很容易实现新的转换的增加,同时却不改变RTF阅读器。...
阅读(672) 评论(0)

Creational模式之Singleton模式

1.意图保证一个类仅有一个实例,并提供一个访问它的全局访问点。 深入了解请点击2.别名无3.动机对于一些类来说,只有一个实例是很重要的。虽然系统中可以有许多打印机,但却只应该有一个打印机工作,只应该是有一个文件系统和窗口管理器。一个数字滤波器只能有一个A/D转换器。一个会计系统只能专用于一个公司。4.适用性以下情况使用Singleton模式: 当类只能有一个实例而且客户可以从一个众所周知的访问点访...
阅读(296) 评论(0)

Creational模式之Abstract Factory模式

1.意图提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。2.别名Kit3.动机考虑一个支持多种视感(look-and-feel)标准的用户界面工具包。不同的视感风格为诸如滚动条、窗口和按钮等用户界面”窗口组件“定义不同的外观和行为。为保证视感风格标准间的可移植性,一个应用不应该为一个特定的视感外观硬编码它的窗口组件。4.适用性以下情况使用Abstract Factory模式: 一...
阅读(412) 评论(0)

Creational模式之Factory Method模式

1.意图定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到其子类。2.别名虚构造器(Virtrual Constructor)3.动机框架使用抽象类定义和维护对象之间的关系。这些对象的创建通常也有框架负责。4.适用性以下情况使用Factory Method模式: 当一个类不知道它所必需创建的对象的类的时候。 当一个类希望由它的子类来指定它所创建的...
阅读(391) 评论(0)

Java设计模式

设计模式是思维具体化的一种方式,是思考如何解决问题的具体过程,设计模式是在解决问题过程中,一些良好思路的经验集成,最早期设计模式人们总要说道Gof的著作,它最早将经典的23中设计模式集合在一起说明,对后期学习设计模式,尤其是对从事件导向程序设计的人们起了莫大的影响。后来设计模式一次被广泛的应用的各种经验集成,甚至还有反模式(AntiPattern),反模式教导你如何避开一些常犯且似是而非的程序设计思...
阅读(614) 评论(0)

Behavioral模式之Interpreter模式

1.意图给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。2.别名无3.动机如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各种实例表述为一种简单语句中的句子。这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题。4.适用性以下情况使用Interpreter模式: 当有一种语言需要解释执行,并且你可以将该语言中的句子表示为一个...
阅读(514) 评论(0)

Behavioral模式之Mediator模式

1.意图用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变他们之间的交互。2.别名无3.动机面向对象设计鼓励将行为分布到各个对象中。这种分布可能会导致对象间有许多连接。在最坏的情况下,每一个对象都知道其他所有对象。4.适用性以下情况使用Mediator模式: 一组对象以定义良好但是复杂的方式进行通信。产生的相互依赖关系结构混乱且难以理解。...
阅读(488) 评论(0)

Behavioral模式之Visitor模式

1.意图表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。2.别名无3.动机考虑一个编译器,他将源程序表示为一个抽象语法树。该编译器需要在抽象语法上实施某些操作以进行“静态语义”分析,例如检查是否所有的变量都已经被定义了。他也需要生成代码。因为它可能要定义许多操作以进行代码检查、代码优化、流程分析、检查变量是否在使用前被赋初值,等等。此外,还可...
阅读(662) 评论(0)

Behavioral模式之State模式

1.意图允许一个对象再其内部状态改变时,改变它的行为。对象看起来似乎修改了它的类。2.别名状态对象(Objects for States)3.动机考虑一个表示网络连接的类TCPConnection。一个TCPConnection对象的状态处于若干不同状态之一:连接已建立(Established)、正在监听(Listenling),连接已关闭(Closed)。当一个TCPConnection对象收到其...
阅读(477) 评论(0)

Behavioral模式之Memento模式

1.意图在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可将该对象恢复到原先保存的状态。2.别名Token3.动机有时候有必要记录一个对象的内部状态。为了允许用户取消不确定的操作或从错误中恢复过来,需要实现检查点和取消机制,而要实现这些机制,你必须事先将状态信息保存在某处,这样才能是对象恢复到他们先前的状态。4.适用性以下情况使用Memento模式: 必需保存一...
阅读(512) 评论(0)

Behavioral模式之Command模式

1.意图将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。2.别名动作(Action),事务(Transaction)3.动机有时必须向某对象提出请求,当但并不知道关于被请求的操作或请求的接收者任何信息。例如,用户界面工具箱包括按钮和菜单这样的对象,它的执行请求响应用户输入。但工具箱不能显式的在按钮或菜单中实现该请求,因为只有使用工具箱...
阅读(534) 评论(0)

Behavioral模式之Chain of Responsibility模式

1.意图使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这些对象连成一条链,并沿着这条链传递改请求,知道有一个对象处理它为止。2.别名无3.动机考虑一个图形用户界面中的上下文有关的帮助机制。用户在界面的任一部分上点击就可以以得到帮助信息,所提供的帮助依赖于点击的是界面的哪一部分以及其上下文。4.适用性以下情况使用Responsibility模式: 有多个的对象可以处理一个请...
阅读(706) 评论(0)

Behavioral模式之Iterator模式

1.意图提供一种方法顺序访问一个集合对象中各个元素,而不需要暴露该对象的内部表示。2.别名Cursor(游标)3.动机一个聚合对象,如列表(list),应该提供一种方法来让别人可以访问它的元素,而又不需要暴露它的内部结构。数据库中最常用的Iterator模式。4.适用性以下情况使用Iterator模式: 访问一个聚合对象的内容而无需暴露它的内部表示。 支持对聚合对象的多种遍历。 为遍历不同的聚合结构...
阅读(469) 评论(0)

Behavioral模式之Observer模式

1.意图定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。2.别名依赖(dependents),发布-订阅(Publish-Subscribe)3.动机将一个系统分割成一系列相互协作的类,有一个常见的副作用:需要维护相关对象间的一致性。我们不希望为了维持一致性而使得个类之间紧密耦合,因此这样降低了他们的可重用性。4.适用性以下情况使用ObServ...
阅读(493) 评论(0)

Behavioral模式之template Method模式

1.意图定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。TemplateMethod使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。2.别名暂无3.动机考虑一个提供Application和Document类的应用框架。Application类负责打开一个已有的以外部形式存储的文档,如一个文件。一旦一个文档中的信息重该文件中读出后,它就由一个Document对象表示。4.适用性以...
阅读(457) 评论(0)

Behavioral模式之Strategy模式

1.意图定义一系列的算法,把他们一个个封装起来,并使它们可相互替换。本模式使得算法可以独立与使用它的客户而变化。2.别名政策(Policy)3.动机有许多算法可对一个正文流进行分析。将这些算法硬编进使用它们的类中是不可取的。其原因如下: 需要换行功能的客户程序如果直接包含换行算法代码的话将会变得复杂,这使得客户程序庞大并且难以维护,尤其当其需要支持多种换行算法时问题更加严重。 不同的时候需要不同的算...
阅读(474) 评论(0)

Structual设计--总结

1.结构型模式的讨论我们可以注意到了结构型模式之间的相似性,尤其是他们的参与者与协作之间的相似性。这可能是因为结构型模型依赖于同一个很小的语言机制集合构造代码和对象:但继承和多继承机制用于基于类的模型,而对象组合机制用于对象模型。但是这些相似性掩盖了这些模型的不同意图。2.Adapter和Bridge模式Adapter模型和Bridge模型具有一些共同的特征。他们都给另一个对象提供了一定程度上的间接...
阅读(658) 评论(0)

Structual设计--Bridge模式

1.意图将抽象部分与它的实现部分分离,使他们都可以独立地变化。2.别名Handle/Body3.动机当一个抽象对象可能有多个实现时,通常用继承来协调它们。抽象类定义对该抽象的接口,而具体的子类则用不同方式加以实现。但是此方法有时不够灵活。继承机制将抽象部分与它的实现部分固定在一起,使得难以对抽象部分和实现部分独立的进行修改、扩充和重用。4.适用性以下情况使用Bridge模式: 你不希望在抽象和它的实...
阅读(963) 评论(0)
106条 共6页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:397251次
    • 积分:4205
    • 等级:
    • 排名:第8007名
    • 原创:92篇
    • 转载:14篇
    • 译文:0篇
    • 评论:223条
    最新评论