随笔分类 - designPattern
摘要:在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。 public interface Strategy { public int operate(int num1, int num2); } public class AddOp
阅读全文
摘要:在享元模式中可以共享的相同内容称为 内部状态(Intrinsic State),而那些需要外部环境来设置的不能共享的内容称为 外部状态(Extrinsic State), 其中外部状态和内部状态是相互独立的,外部状态的变化不会引起内部状态的变化。由于区分了内部状态和外部状态,因此可以通过设置不同的外
阅读全文
摘要:定义: 过滤器模式(Filter Pattern)或标准模式(Criteria Pattern)是一种设计模式,这种模式允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。这种类型的设计模式属于结构型模式,它结合多个标准来获得单一标准。 类图: 这张图是网络摘的,基本上
阅读全文
摘要:定义: 将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。 实现: 适配器模式分为类结构型模式和对象结构型模式两种,前者类之间的耦合度比后者高, 用得较少 代码案例: 类结构模式: 这里的目的是Chicken的gege方法能适配Duck的gaga方法
阅读全文
摘要:定义: 通过复制现有的对象实例来创建新的对象实例。 实现: 实现Cloneable接口重写clone方法。 上一篇的深拷贝浅拷贝其实就是原型模式。
阅读全文
摘要:拷贝对象: 实现cloneable接口,重写clone方法。因为Object里的clone方法是protected的。 浅拷贝: 浅拷贝就是拷贝对象里面的对象引用没有被拷贝,还是指向地址。 --下面就是演示 person里面的hobby对象没有被拷贝。还是指向地址 Person类: @Data pu
阅读全文
摘要:part1 工厂模式 实现产品与创建产品解耦 这里我用了两个工厂,每个工厂分别创建productA, productB,这里可以只写其中一个,IProduct, ProductA, IFactory, FactoryA, 我只是想写多个工厂而已。 这里我想创建两种产品(ProductA, Produ
阅读全文
摘要:定义:使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。 首先来看一段代码: public void test(int i, Request request){ if(i==1){ Handler1.resp
阅读全文
摘要:定义:定义一个操作中算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变算法的结构即可重定义该算法中的某些特定步骤。 需要实现一套相同流程,只需要子类去继承模板类 代码: 模板类Cook public abstract class Cook { public abstract void oil(
阅读全文
摘要:定义: 定义对象间一种一对多的依赖关系,使得当每一个对象改变状态,则所有依赖于它的对象都会得到通知并自动更新。 它能提供灵活的注册,移除,实现观察者与被观察者的解耦。 代码: Subject : public abstract class Subject { List<Obverser> list
阅读全文
摘要:工厂方法使用继承,抽象工厂使用组合。 工厂方法的重点在:定义一个模板 抽象工厂的重点在:生产一个族
阅读全文
摘要:/** * 不是线程安全的 */ public class UnsafeSingleton { private static UnsafeSingleton uniqueInstance; private UnsafeSingleton() { } public static UnsafeSingl
阅读全文

浙公网安备 33010602011771号