随笔分类 - Java 设计模式
摘要:观察者设计模式 定义了对象之间一对多的关系。当一个对象的状态发生变化,它所有的依赖者会收到更新通知,并作出相应的变化。 相关对象 主题(Subject):主题是一个接口,接口规定了具体主题需要实现的方法,如添加、删除观察者以及通知观察者更新数据的方法; 观察者(Observer):观察者是一个接口,
阅读全文
摘要:责任链模式 将能够处理一类请求的对象连成一条链,所提交的请求沿着链传递,链上的对象逐个判断是否有能力处理该请求,如果能则处理,如果不能则传递给链上的下一个对象。 使用场景 (1)在公司OA系统请假审批流程 如果请假小于3天只需要项目经理批复就行; 如果请假大于等于3天,小于7天需要人事经理批复了;
阅读全文
摘要:外观模式 外观模式核心就是为系统提供一个统一的入口,封装子系统的复杂性,便于客户端使用。 外观模式结构图 Client:客户端 Facade:外观类,提供统一的接口,根据不同的请求,调用不同的子系统处理; Subsystem:子系统类,处理不同的子系统模块业务; 举例说明 如果我们要实现一个注册公司
阅读全文
摘要:享元模式(FlyWeight) 享元模式是设计模式中少数几个以提高系统性能为目的的设计模式。他的核心思想是:如果一个系统中存在多个相同的对象,那么只需共享一份对象的拷贝,而不必为每一次使用都创建新的对象。 在享元模式中,由于需要构造和维护这些可以共享的对象,因此需要一个工厂类用于维护和创建共享对象。
阅读全文
摘要:装饰模式(decorator):是一种用于代替继承的技术;无需通过继承添加子类就可以扩展对象的新功能。使用对象的关联关系代替继承关系,更加灵活,同时避免类型体系的快速膨胀。 案例: 如果我们要实现如上的类图关系,首先肯定是使用继承;但是如果以后要扩展出水上+飞行汽车、水上+智能汽车、飞行+智能汽车.
阅读全文
摘要:桥接模式是一种结构模型。 场景:假如我们要实现如下的一个电脑商品的分类:我们可以用多层继承结构实现下图的关系 多层继承机制实现 用UML图表示: 问题: (1)扩展性问题 如果需要添加新的品牌,如添加神州笔记本,那我们需要添加该品牌下面的所有的类型,如神州台式机,神州笔记本,神州Pad; 如果需要添
阅读全文
摘要:代理模式 核心作用:通过代理,控制访问对象的访问。 可以详细控制访问某个(某类)对象的方法,在调用这个前做什么处理,在调用这个方法后做什么处理。(即AOP(面向切面的微观实现)) 核心角色: 抽象角色:定义代理角色和真实角色的公共对外方法; 真实角色:实现抽象角色,定义真实角色所要实现的业务逻辑,供
阅读全文
摘要:适配器模式就是把一个类的接口变换成客户端期望的接口,从而使因接口不匹配无法工作的两类可以在一起工作。 现实场景 笔记本电源是三向电源插头,但是遇到了电源插座却是两向的,这是就需要一个适配器排插。 适配器模式设计的角色: 源角色(Adaptee):现在需要适配的接口,如上面的两向电源插口; 目标角色(
阅读全文
摘要:原型设计模式(Prototype)是创建型设计模式。 原型设计模式指通过已有的对象生成新的对象,我们无需知道原有的对象具体的创建细节,通常用于创建复杂的对象。 被克隆对象必须具备以下条件: 实现Cloneable接口,因为在JavaJVM中,如果要执行clone()方法时,发现该类没有实现Clone
阅读全文
摘要:建造者设计模式属于创建性模式,其目的在于将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 适用场景: 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时 创建一些复杂的对象时,这些对象的内部组成构件间的建造顺序是稳定的,但是对象的内部组成构件面临着复杂的变化
阅读全文
摘要:核心作用:保证一个类只有一个实例,并且提供一个访问该实例的全局访问点。 常见应用场景: 单例模式的优点: - 由于单例模式只生成一个实例,减少了系统性能开销,当一个对象产生需要消耗较多资源时,如读取配置文件、产生其他依赖对象时,则可以通过在启动时直接创建出一个对象,然后永久驻留内存的方式来解决 -
阅读全文
摘要:工厂模式(实现创建者和调用者的分离,实现解耦) 本质:实例化对象,用工厂方法代替new()操作; 将选择实现类、创建对象统一管理和控制;从而实现将调用者和实现类解耦; 分类: 简单工厂:用来生产统一等级结构中的任何产品(对于增加新的产品,需要修改已有的代码) 工厂方法:用来生产同一等级中的固定产品(
阅读全文
摘要:工作中有个需求是找出文本中出现的QQ号、电话号码等,但是我们知道往往会遇到“玖二⑦零五三二玖、加口2805703、零Ⅲ壹壹872陆7844”,这里我做了一个配置文件,实现这些关键词的过滤,之后需要过滤的时候,读取到Map中,把这些关键词替换成,我们需要的。由于在配置文件中,当然不能用一次读取一次了,
阅读全文

浙公网安备 33010602011771号