设计模式
HarryClaire
Hello World
展开
-
Java设计模式——策略模式
概述策略模式(Strategy)定义了一个算法家族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化不会影响到使用算法的客户。 策略模式的结构组成如下所示: 角色组成策略模式涵盖了3个角色,分别是上下文环境、基本的策略基类和具体的策略执行类。 1)上下文环境(Context)角色:持有一个Strategy的引用。 2)抽象策略(Strategy)角色:这是一个抽象角原创 2018-02-01 16:25:47 · 211 阅读 · 0 评论 -
Java设计模式—原型模式
概述原型模式(Prototype),是指用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。其实质就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。UMLClientPro:让一个原型去克隆自身,创建一个新的对象;ProtoType:原型类 ,声明一个克隆自身的接口;ConcretePrototype:具体的原型类,负责实现具体的克隆操作原创 2018-02-07 16:38:51 · 203 阅读 · 0 评论 -
Java设计模式 — 适配器模式
概述适配器(Adapter)模式,是讲一个类的接口转换成客户希望的另一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的一些类可以一起工作。 Java程序开发过程中,我们有时候会遇到数据和行为都正确,但是接口不符的情况。针对这种情况,我们可以采用适配器模式的思想。先使不可控的类与某一个接口进行适配,然后再去适配某个目标类。听起来有些晦涩,举个例子:我们在电脑连接电视的时候,有时候接口对...原创 2018-02-13 14:49:09 · 187 阅读 · 0 评论 -
Java设计模式——观察者模式
概述观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察对象,使他们能够自动更新自己。UML Subject: 把所有的观察对象的引用都保存在一个集合里面,每一个主题都可以有任何数量的观察者。抽象主题提供一个接口,可以增加、删除和清空观察者对象。ConcreteSubject:具体主题,将有关状态存入聚义观察原创 2018-02-06 19:44:18 · 172 阅读 · 0 评论 -
Java设计模式——建造者模式
概述建造者(Builder)模式,又称为生成器模式。它是将一个复杂的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。当采用了建造者模式,用户就只需要指定需要建造的类型就可以得到想要的最终结果,至于具体的构建过程和构建细节不需要过多知晓。UML Director:指挥者,主要负责调度Builder接口对象,构建成型的产品。 Builder:抽象接口,封装了Product原创 2018-02-06 17:15:57 · 156 阅读 · 0 评论 -
Java设计模式——外观设计模式
概述外观设计模式(Facade)就是为各个子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。UML 外观设计模式中的角色 Client:客户端类,负责功能的具体使用。即类和方法的使用者 Facade:外观类,知道哪些子系统类负责处理请求,将客户端的请求代理分配给对应的子系统。 Subsystem Classes:子系统类的集原创 2018-02-06 16:32:08 · 255 阅读 · 0 评论 -
迪米特法则
概述迪米特法则又称为最少知识法则,即:如果两个类不必彼此直接通信,那么这两个类就不应该发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三方来转发这个调用。 迪米特法则特别强调的是类之间的松耦合,即在类的结构设计上,每一个类都应该尽量降低成员的访问权限。我们在进行程序设计时,类之间的耦合程度越小,越是有利于复用,一个出在弱耦合的类被修改的时候,对其他类造成的影响就原创 2018-02-06 15:30:59 · 366 阅读 · 0 评论 -
Java设计常用的原则
单一职责原则 单一职责原则(Single Responsibility Principle) 就一个类而言,应该仅有一个引起它变化的原因(ASD)。通俗的说,即一个类只负责一项职责,应该仅有一个引起它变化的原因。如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化就可以会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭到意想原创 2018-01-30 14:29:06 · 230 阅读 · 0 评论 -
Java设计模式——简单工厂模式
概述简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。严格地来说,简单工厂模式并不是23种标准模式之一,使用这个模式可以把对象的创建和对象的使用分离开,工厂只负责对象的创建,客户端程序调用和使用对象,客户端程序无需创建对象。这样对象的创建放在一起,原创 2018-01-30 09:26:06 · 228 阅读 · 0 评论 -
Java设计模式——代理模式
概述代理模式(Proxy),为其他对象提供一种代理,以控制对这个对象的访问,是一种结构类型的设计模式。在具体的使用过程中,客户端必须通过代理类才能调用幕后的被代理类的方法,完成特定的交互目的。 代理模式的UML图大致如下 角色代理模式中含有的角色为 1)抽象对象(subject) 定义了目标对象(real subject)及代理类对象(proxy)的共同接口,这样在任何使用原创 2018-02-05 15:09:52 · 295 阅读 · 0 评论 -
Java设计模式——单例模式
概述 单例设计模式是Java工程中最常用,也是最简单的设计模式。其最核心特点便是采用单例设计模式的类只有一个实例,这样的的好处就是整个工程可以节省了系统开销,不必每次调用的类的中的方法时都生成一个实例。同时,也有效避免了线程池、缓存、硬件设备在调用多个实例时出现冲突的情况。而且,整个工程可以共享这个实例中的属性的值。基本实现pulic class SingleTon {原创 2018-01-27 19:17:00 · 187 阅读 · 0 评论 -
Java设计模式——装饰者模式
概述装饰者模式(Decorator),在不必改变原类文件和使用继承的情况下,动态地给一个对象添加一些额外的职责。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。 装饰模式的结构组成如下所示: 角色组成Component:基本组件类(抽象类或者接口),可以给要装饰的对象动态添加职责。 ConcreteComponent:具体的组件类,它继承了或实现了Component基原创 2018-02-01 17:06:58 · 494 阅读 · 0 评论 -
Java设计模式——工厂方法设计模式
概述之前简单介绍了简单工厂设计模式,需要的童靴可以点击这里查看详情。 本文主要介绍的是工厂方法设计模式。那么,工厂方法设计模式跟简单工厂设计模式有什么不同的呢。先看一下UML图 简单工厂的区别简单工厂中,工厂类就一个具体的实现类,它封装了所有的必要逻辑。使用中,可以根据客户端选择的条件动态地实例化相关类。而在工厂方法设计模式中,创建了一个基类的抽象工厂,然后又创建了子类的工厂...原创 2018-02-05 15:58:14 · 250 阅读 · 0 评论