关闭
当前搜索:

设计模式-备忘录模式(Memento)

备忘录模式(Memento),在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可以将该对象恢复到之前保存的状态。 Originator(发起人),负责创建一个备忘录Memento,用以记录当前时刻他的内部状态,并可使用备忘录恢复内部状态,Originator可以根据需求决定memento存储Originator的那些内部状态。 Memento(备忘...
阅读(159) 评论(0)

设计模式-状态模式(state)

状态模式(state),当一个对象的内在状态改变时允许改变其行为,这个对象看起啦像是改变了其类。 状态模式主要解决的问题是当控制一个对象的状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。如果这个状态判断很简单,就没必要使用状态模式了。 State抽象状态类,定义一个接口以封装与context的一个特定状态相关的行为。...
阅读(141) 评论(0)

设计模式-抽象工厂模式(abstract factory)

抽象工厂模式(abstract factory),提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。 抽象工厂模式结构图: AbstractProductA,AbstractProductB是两个抽象产品,之所以为抽象,是因为他们都有可能有两种不同的实现,而ProductA1,ProductA2,ProductB1,ProductB2就是对这两个抽象产品的具体分类的实...
阅读(138) 评论(0)

设计模式-观察者模式Observer

观察者模式(Observer),又叫发布订阅模式,定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态发生变化时,会通知所有观察者对象,使他们能够自动更新自己。 实现代码: Subject类,主题类或抽象通知者类,一般用一个抽象类或接口实现,他把所有对观察者对象的引用保存在一个聚集里,每个主题都可以有任意数量的观察者,抽象主题提供一个接口,可以增加和删...
阅读(165) 评论(0)

设计模式-建造者模式(Builder)

建造者模式(Builder),又叫生成器模式,将一个复杂对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示。 建造者模式可以将一个产品的内部表象和产品的生成过程分割开来,从而可以是一个建造过程可以生成具有不同内部表象的产品对象。如果我们使用了建造者模式,你们用户就只需要指定需要建造的类型就可以得到他们,而具体建造的过程和细节就不需要知道了。 Builder是为创建一个产品对...
阅读(145) 评论(0)

设计模式 外观模式(Facade)

外观模式(Facade):为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 代码实现: 四个子系统的类: class SubSystemOne{ public void methodOne(){ //子系统的方法一 } } class SubSystemTwo{ public void methodTwo(){ ...
阅读(172) 评论(0)

文件管理添加删除图片,视频等多媒体文件时,图库不会即时更新的问题

遇到过这样的问题,在文件管理删除一个文件夹,这个文件夹里面包含有图片,然后进入图库查看,发现删除的那个文件夹及图片还在,但是不能查看了,同理的问题,如果是音频,视频也会有这个问题,下面说下修改方法: 首先,在文件管理中,做完删除操作后,发出一个广播消息,告诉mediaprovide需要重新扫描一些路径, 删除文件或者文件夹的操作,最终会调用下面这个文件: \android\packages\...
阅读(1170) 评论(0)

设计模式中的几个法则

设计模式中的几个法则, 迪米特法则:如果两个类不必彼此直接通信,那么这两个类就不应该发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以借助第三者转发这个调用。 迪米特法则强调的前提是在类的结构设计上,每一个类都应该尽量降低成员的访问权限。 其根本思想是强调了类之间的松耦合,类之间的耦合越弱,越有利于复用,一个处在弱耦合的类被修改,不会对有关系的类造成波及。 依...
阅读(162) 评论(0)

隐藏在应用程序背后的Binder机制

如果你对Binder比较陌生,那么对BindService这样的接口应该很熟悉。 BindService这函数,就是希望“绑定某项服务”,之所以成为绑定,是因为发起请求的应用和目标程序原本并没有任何直接联系。也就是说,它们之间的连接属于进程间通信,因而需要一种把两者绑定在一起的机制---Binder。 我们在程序中任何位置通过bindservice,startactivity,sendbora...
阅读(190) 评论(0)

设计模式 模板方法模式 TemplateMethod

模板方法模式TemplateMethod,定义一个操作中的算法的骨架,而将一些操作步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 模板方法的结构图: AbstractClass 是抽象类,其实也就是一个抽象模板,定义并实现了一个模板方法,这个模板方法通常是一个具体方法,他给出了一个顶级逻辑的骨架,而逻辑的组成步骤在相应的抽象操作中,推迟到子类...
阅读(192) 评论(0)

设计模式 原型模式 Prototype

原型模式prototype pattern,用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 原型模式的结构图: 原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。它采取复制原型对象的方法来创建对象的实例。 原型模式的代码: abstract class Prototype{ private String id; pub...
阅读(128) 评论(0)

设计模式 工厂方法模式 factory method

声明:本博客里面设计模式相关的文章,均是学习 《大话设计模式》 的笔记。 工厂方法模式factory method,定义一个用于创建对象的接口,让子类决定实例化那一个类。工厂方法是一个类的实例化延迟到了他的子类。 前面有篇文章,是以计算器为例来学习简单工厂模式,这里还是以计算器为例,来把简单工厂模式,工厂方法模式放一起做个比较。 简单工厂模式的结构图: 工厂类的代码写法: cla...
阅读(149) 评论(0)

设计模式-代理模式(Proxy) java示例

代理模式(Proxy),为其他对象提供一种代理,以控制对这个对象的访问。 代理模式的结构图: Subject类,定义了RealSubject和proxy的公用接口,这样就在任何使用RealSubject的地方都可以使用Proxy。 RealSubject类,定义了proxy所代表的真实实体。 Proxy类,保存一个引用使得代理可以访问实体,并提供一个与subject的接口相同的接口...
阅读(260) 评论(0)

设计模式-装饰模式Decorator JAVA示例

装饰模式Decorator,动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更灵活。下面是装饰模式的结构图: 基本的代码实现: abstract class Component{ public abstract void operation(); } class ConcreteComponent : Component{ public override...
阅读(129) 评论(0)

设计模式-策略模式 java实现

如果要做一个商场收银软件,输入商品的数量,单价,计算出收费总额,还要考虑商场的促销形式,比如打8折,满200减30等,先来看下使用简单工厂模式来实现这个需求的示例: package strategy.pattern; //现金收费抽象类 public abstract class CashSuper { public abstract double acceptCash(double mo...
阅读(132) 评论(0)
18条 共2页1 2 下一页 尾页
    个人资料
    • 访问:35685次
    • 积分:1711
    • 等级:
    • 排名:千里之外
    • 原创:132篇
    • 转载:38篇
    • 译文:0篇
    • 评论:9条
    最新评论