
23种设计模式
quge_name_harder
指尖 拥有改变世界的力量
展开
-
【转】java设计模式之建造者模式
本文继续介绍23种设计模式系列之建造者模式。定义:建造者模式:将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。实用范围1、当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。2、当构造过程必须允许被构造的对象有不同表示时。角色在这样的设计模式中,有以下几个角色:1、Builder:为创建一个产品对象的各个部件指定抽象接口。2、ConcreteBuilde...转载 2018-06-25 14:03:44 · 93 阅读 · 0 评论 -
【转】Java设计模式之策略模式
本文继续介绍23种设计模式系列之策略模式。背景在软件开发中常常遇到这种情况,实现某一个功能有多种算法或者策略,我们可以根据环境或者条件的不同选择不同的算法或者策略来完成该功能。如查找、排序等,一种常用的方法是硬编码(Hard Coding)在一个类中,如需要提供多种查找算法,可以将这些算法写到一个类中,在该类中提供多个方法,每一个方法对应一个具体的查找算法;当然也可以将这些查找算法封装在一个统一的...转载 2018-06-25 11:30:49 · 117 阅读 · 0 评论 -
【转】Java设计模式之模板方法模式(Template Method)
本文继续介绍23种设计模式系列之模板方法模式。概述模板方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。比如定义一个操作中的算法的骨架,将步骤延迟到子类中。模板方法使得子类能够不去改变一个算法的结构即可重定义算法的某...转载 2018-06-25 11:21:20 · 118 阅读 · 0 评论 -
【转】Java设计模式之观察者模式
本文继续介绍23种设计模式系列之观察者模式。观察者模式中,一个被观察者管理所有相依于它的观察者物件,并且在本身的状态改变时主动发出通知。这通常通过呼叫各观察者所提供的方法来实现。此种模式通常被用来实现事件处理系统。角色抽象被观察者角色:把所有对观察者对象的引用保存在一个集合中,每个被观察者角色都可以有任意数量的观察者。被观察者提供一个接口,可以增加和删除观察者角色。一般用一个抽象类和接口来实现。抽...转载 2018-06-25 11:16:14 · 94 阅读 · 0 评论 -
【转】 Java设计模式之迭代子模式
本文继续介绍23种设计模式系列之迭代子模式。定义在软件构建过程中,集合对象内部结构常常变化各异,但对于这些集合对象,我们希望在不暴露其内部结构的同时,可以让外部客户代码透明地访问其中包含的元素;同时这种“透明遍历”也为同一种算法在多种集合对象上进行操作提供了可能。使用面向对象技术将这种遍历机制抽象为“迭代器对象”为“应对变化中的集合对象”提供了一种优雅的方式。迭代子(Iterator)模式又叫游标...转载 2018-06-25 11:03:13 · 110 阅读 · 0 评论 -
【转】Java设计模式之责任链模式、职责链模式
本文继续介绍23种设计模式系列之职责链模式。什么是链1、链是一系列节点的集合。2.、链的各节点可灵活拆分再重组。职责链模式使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系,将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理他为止。角色抽象处理者角色(Handler):定义出一个处理请求的接口。如果需要,接口可以定义 出一个方法以设定和返回对下家的引用。这个角色通...转载 2018-06-22 13:34:42 · 133 阅读 · 0 评论 -
【转】Java设计模式之命令模式
本文继续介绍23种设计模式系列之命令模式。定义将来自客户端的请求传入一个对象,从而使你可用不同的请求对客户进行参数化。用于“行为请求者”与“行为实现者”解耦,可实现二者之间的松耦合,以便适应变化。分离变化与不变的因素。角色Command定义命令的接口,声明执行的方法。ConcreteCommand命令接口实现对象,是“虚”的实现;通常会持有接收者,并调用接收者的功能来完成命令要执行的操作。Rece...转载 2018-06-19 09:53:28 · 135 阅读 · 0 评论 -
【转】Java设计模式之访问者模式
本文继续23种设计模式系列之访问者模式。定义封装某些作用于某种数据结构中各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。[java] view plain copyclass A { public void method1(){ System.out.println("我是A"); } pub...转载 2018-06-19 09:43:07 · 101 阅读 · 0 评论 -
【转】Java 设计模式之中介者模式
本文继续23种设计模式系列之中介者模式。定义用一个中介者对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使耦合松散,而且可以独立地改变它们之间的交互。角色抽象中介者:定义好同事类对象到中介者对象的接口,用于各个同事类之间的通信。一般包括一个或几个抽象的事件方法,并由子类去实现。中介者实现类:从抽象中介者继承而来,实现抽象中介者中定义的事件方法。从一个同事类接收消息,然后通过消息影...转载 2018-06-19 09:37:36 · 98 阅读 · 0 评论 -
【转】JAVA设计模式之单例模式
本文继续介绍23种设计模式系列之单例模式。概念: java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、登记式单例。 单例模式有以下特点: 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统...转载 2018-06-19 09:20:59 · 113 阅读 · 0 评论 -
【转】Java设计模式之状态模式
何时使用State模式在实际使用中比较多,适合“状态”的切换。因为我们经常会使用If else if else 进行状态切换,如果针对状态的这样判断切换反复出现,我们就要联想到是否可以采取State模式了。这里要阐述的是"开关切换状态" 和" 一般的状态判断"是有一些区别的," 一般的状态判断"也是有 if..elseif结构,例如:[java] view plain copyif (which=...转载 2018-06-18 09:02:54 · 103 阅读 · 0 评论 -
【转】设计模式--单例模式
设计模式--单例模式单例模式(Singleton Pattern)定义:Ensure a class has only one instance, and provide a global point of access to it.(确保一个类只有一个实例,并且给这个实例提供全局访问)即一个类只能实例化一个实例,外部可以访问这个实例的同时,外部依赖这个类的实例都是同一个实例。让构造函数的访问权限...转载 2018-06-17 11:56:21 · 100 阅读 · 0 评论