设计模式
QUAN_A
萌新
展开
-
懒汉模式和饿汉模式
今天在看《java编程思想》的访问权限控制一章中,里面讲到private关键字,一个单例模式,原来看过这种写法,但是一直不明白其中的道理,看过之后就明白了。下面是这个栗子public class Single { private static Single single = new Single(); private Single() {} public static Single原创 2017-03-29 11:15:26 · 730 阅读 · 0 评论 -
观察者模式
Observable是java实现观察者模式的一种方式,被观察者需要继承Observable,观察者实现Observer接口。被观察者//学生,被观察者,继承Observable(可以被观察的)public class Student extends Observable { public void study(){ System.out.println("学生:1+1=几"原创 2017-08-02 10:57:33 · 287 阅读 · 0 评论 -
装饰模式
百度百科装饰模式指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。在装饰模式中的各个角色有:抽象构件(Component)角色:给出一个抽象接口,以规范准备接收附加责任的对象。具体构件(Concrete Component)角色:定义一个将要接收附加责任的类。装饰(Decorator)角色:持有一个构件(Component)对象的实例,并实现一个与抽象构件接口一致的接口。原创 2017-12-04 17:38:11 · 275 阅读 · 0 评论 -
建造者模式(生成器模式)
维基百科生成器模式(英:Builder Pattern)是一种设计模式,又名:建造模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。抽象创建接口public interface PersonBuilder { void buildHead(); void buildBody(); void b原创 2017-12-06 09:53:21 · 448 阅读 · 0 评论 -
外观模式
百度百科外观模式(Facade),为子系统中的一组接口提供一个一致的界面,定义一个高层接口,这个接口使得这一子系统更加容易使用。public class Debt { public void buy() { System.out.println("买国债"); } public void sell() { System.out.println("卖原创 2017-12-06 09:20:22 · 266 阅读 · 0 评论 -
模板方法模式
维基百科模板方法模式定义了一个演算法的步骤,并允许子类别为一个或多个步骤提供其实践方式。让子类别在不改变演算法架构的情况下,重新定义演算法中的某些步骤。具体来说,模板方法就是提炼出公共的方法步骤,子类只需要关系自己要做的事即可。试卷模板public abstract class Question { //题目,不允许子类修改 public final void question1()原创 2017-12-05 16:55:28 · 216 阅读 · 0 评论 -
工厂模式
维基百科工厂方法模式(英语:Factory method pattern)是一种实现了“工厂”概念的面向对象设计模式。就像其他创建型模式一样,它也是处理在不指定对象具体类型的情况下创建对象的问题。工厂方法模式的实质是“定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类。工厂方法让类的实例化推迟到子类中进行。”操作对象public class Operation { private原创 2017-12-05 15:20:55 · 658 阅读 · 0 评论 -
代理模式
百度百科代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。组成:抽象角色:通过接口或抽象类声明真实角色实现的业务方法。代理角色:实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并可以附加自己的操作。真实角色:实现抽象角色,定义真实角色所要实现的业务逻原创 2017-12-05 11:15:17 · 204 阅读 · 0 评论 -
策略模式
维基百科:策略模式作为一种软件设计模式,指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法。比如每个人都要“交个人所得税”,但是“在美国交个人所得税”和“在中国交个人所得税”就有不同的算税方法。 策略模式:定义了一族算法(业务规则);封装了每个算法;这族的算法可互换代替(interchangeable)。定义统一策略接口public interface CashSuper {原创 2017-12-04 14:09:58 · 189 阅读 · 0 评论 -
备忘录模式
定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样就可以将该对象恢复到原先保存的状态。类图:发起人(游戏角色)public class GameRole { private int vit; private int atk; private int def; public void stateDisplay() { Sy原创 2017-12-20 10:52:12 · 268 阅读 · 0 评论 -
简单工厂模式
为什么使用设计模式?在开发中使用设计模式虽然会增加代码量,但是使用设计模式能使得代码更加灵活、可扩展和复用。原创 2017-12-01 14:23:34 · 207 阅读 · 0 评论 -
装饰器模式
今天学习了装饰器模式,总结一下:百度百科对装饰器模式的解释:在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。其要点是 1. 不改变原类文件 2. 尽量少用继承 3. 动态扩展装饰模式的特点 (1) 装饰对象和真实对象有相同的接口。这样客户端对象就能以和真实对象相同的方式和装饰对象交互。 (2) 装饰对象包含一个真实原创 2017-04-18 17:34:07 · 329 阅读 · 0 评论 -
适配器模式
维基百科在设计模式中,适配器模式(英语:adapter pattern)有时候也称包装样式或者包装(wrapper)。将一个类的接口转接成用户所期待的。一个适配使得因接口不兼容而不能在一起工作的类能在一起工作,做法是将类自己的接口包裹在一个已存在的类中。球员抽象类public abstract class Player { protected String name; public Pl原创 2017-12-07 10:13:37 · 2310 阅读 · 1 评论