设计模式
Chocus
呵呵
展开
-
工厂模式
工厂模式属于创建型模式,它提供了一种创建对象的最佳方式。 在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。 定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。 工厂模式主要解决接口选择的问题。 何时使用:我们明确地计划不同条件下创建不同实例时。 如何解决:让其子类实现工转载 2017-10-26 09:11:50 · 126 阅读 · 0 评论 -
单例模式
单例模式属于创建型模式,它提供了一种创建对象的最佳方式。 涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。 注意: 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 意图:保证一个转载 2017-10-26 09:31:28 · 157 阅读 · 0 评论 -
原型模式
原型模式属于创建型模式,它提供了一种创建对象的最佳方式。 用于创建重复的对象,同时又能保证性能。 实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。 例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新数据库,以此来减少数据库调用。 意转载 2017-10-26 10:09:23 · 116 阅读 · 0 评论 -
代理模式
代理模式属于结构型模式。 创建具有现有对象的对象,以便向外界提供功能接口。 意图:为其他对象提供一种代理以控制对这个对象的访问。 主要解决:在直接访问对象时带来的问题 何时使用:想在访问一个类时做一些控制。 如何解决:增加中间层。 关键代码:实现与被代理类组合。 应用实例:猪八戒去找高翠兰结果是孙悟空变的,可以这样理解:把高翠兰的外转载 2017-10-26 10:21:37 · 116 阅读 · 0 评论 -
中介者模式
中介者模式属于行为型模式。 用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。 意图:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 主要解决:对象与对象之间存在大量的关联关系,这样势必会导致系统的结转载 2017-10-26 10:27:10 · 113 阅读 · 0 评论 -
观察者模式
观察者模式属于行为型模式。 当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。 意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 主要解决:一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。转载 2017-10-26 10:31:01 · 115 阅读 · 0 评论 -
模板模式
模板模式属于行为型模式。 一个抽象类公开定义了执行它方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。 意图:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 主要解决:一些方法通用,却在每一个子类都重新写了这一方法。 何时使用:有一些通用的方法。转载 2017-10-26 10:35:53 · 671 阅读 · 0 评论 -
MVC 模式
MVC 模式 MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发。 Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑,在数据变化时更新控制器。 View(视图) - 视图代表模型包含的数据的可视化。 Controller(控制器) - 控制器作用于模型和视图上。它转载 2017-10-26 10:41:04 · 128 阅读 · 0 评论