随笔分类 - 设计模式
摘要:策略模式 策略模式将可变的部分从程序中抽象分离成算法接口,在该接口下分别封装一系列算法实现, 并使得他们可以相互替换,从而导致客户端程序独立于算法的改变。 实例: 假如有一个鸭子类:鸭子有叫的功能,有展示功能,另外需要给鸭子加一个飞行能力,让鸭子飞起来,但是对于不同的鸭子有不同的飞行能力, 比如有的
阅读全文
摘要:区别对待观察者场景问题 两点需求: 第一:黄明女朋友只想接收下雨的天气预报。 第二:黄明老妈,想接收下雨或者下雪的天气预报。 解决思路: 情况之一: 如果天气晴天,按照黄明女朋友需要下雨添加,黄明老妈需要下雨或者下雪条件,他俩都不需要通知。 情况二: 如果下雨,则黄明女朋友和老妈都要通知。 情况三:
阅读全文
摘要:利用Java提供的观察者实现 java.utill包:Observable类。 接口:Observer update方法。 Java实现与自己实现的对比。 四点: 第一:不需要再定义观察者和目标的接口,JDK帮忙定义。 第二:具体的目标实现不需要维护观察者的注册信息了,这个Java中Observab
阅读全文
摘要:认识观察者模式: 命名建议: 第一:目标接口的定义,建议在名称后面加上Subject。 第二:观察者接口的定义,建议在名称后面跟上Observer。 第三:观察者接口的更新方法,建议名称为Update。 触发通知的时机:完成了状态维护后触发。 实现的两种方式:推模型和拉模型 推模型: 目标对象主动向
阅读全文
摘要:学习观察者模式通用代码: 1,目标对象的定义 2,具体的目标对象定义。 3,再来看看观察者的接口定义 4,看看观察者的具体实现。 先来一个通用的观察者模式实例: 1:定义一个目标对象:包含观察者的添加,删除,以及最重要的通知观察者方法(观察者对象调用自己的方法,方法参数是目标对象) 2,建立一个具体
阅读全文
摘要:代理模式-动态代理 (1) (2) 代码实践动态代理: 第一步:被代理类的接口: 第二步:被代理类: 第三步:代理类:实现接口:InvocationHandler,同时把被代理类对象接口传入构造方法, 重写的接口的invoke方法。 测试类中实现代理: 使用Proxy类的newProxyInstan
阅读全文
摘要:一.简介 适配器模式:适配器模式(英语:adapter pattern)有时候也称包装样式或者包装。将一个类的接口转接成用户所期待的。一个适配使得因接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。 代理模式:为其他对象提供一种代理以控制对这个对象的访问。在某些情
阅读全文
摘要:适配器模式: 定义:适配器模式将类的接口,转换成客户期望的另一个接口。使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 把“被适配者”作为一个对象组合到适配器类中,以修改目标接口包装被适配者。 target:目标接口。 // 下面的三相插头 Adapter:适配器。 //下面的二相适配器
阅读全文
摘要:工厂模式概念: 工厂模式的意图: 什么情况下适合工厂模式 工厂模式的动机 项目中的现状: 软件系统中经常面临对象的创建工作,由于需求的变化,这个对象可能也随之发生变化,但他却拥有比较稳定的接口。 为此,我们需要提供一种封装机制来隔离出这个易变对象的变化,从而保持系统中其他依赖该对象的对象不随之需求变
阅读全文
摘要:1,单例模式分:饿汉模式和懒汉模式。 饿汉模式:在加载类的时候就自动创建 懒汉模式:在加载类的时候只声明,只有在调用的时候才创建。 单利模式Singleton 应用场合:有些对象只需要一个就够了,如:皇帝,老婆 作用:保证某个应用程序中某个实例有且只有一个 类型:饿汉模式,懒汉模式 区别:饿汉模式的
阅读全文