随笔分类 - 设计模式
摘要:1.前言 首先回顾下代理模式(Proxy Pattern)的定义:代理模式指为其他对象提供一种代理,以控制这个对象的访问,属于结构型设计模式。其适用于在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端于目标对象之间起到中介的作用。 代理模式主要分为静态代理和动态代理两种方
阅读全文
摘要:1. 装饰器模式简介 装饰器模式主要解决的是直接继承下因功能的不断横向扩展导致子类膨胀的问题,就功能实现来说,使用装饰器模式比直接继承显得更加灵活,同时不需要考虑子类的维护。 上图为装饰器模式的组成,可以看出,其主要包含如下部分: Component 定义一个对象的接口,定义了该对象的职责,也是装饰
阅读全文
摘要:1. Pipeline-Valve 管道(Tomcat)简介 责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在
阅读全文
摘要:在平时开发中,有时避免不了使用大量判断,简单处理的话就使用if...else...了,但过多层的if else对于性能有很大的开销,而且业务复杂的话,耦合太重,对于后期的拓展也不是很友好,所以使用策略模式。 1. 策略+工厂实现相同业务抽象 策略模式:一种解耦的方法,它对算法进行封装,使得算法的调用
阅读全文
摘要:一、单一职责原则(Single Responsibility Principle,SRP) 1. 单一职责原则定义 应该有且仅有一个原因引起类的变更。 2. 单一职责原则好处 类的复杂性降低,实现什么职责都有清晰明确的定义; 可读性提高,复杂性降低,那当然可读性提高了; 可维护性提高,可读性提高,那
阅读全文
摘要:1. 适配器模式简介 2. 适配器模式的实现 2.1 使用组合的方式实现插座适配器(对象适配器) 笔记本的插头是三相的,所以应该使用三相插座来供电 但目前没有三相插座,只有二相插座(GB) 所以作为一个使用三相插头供电的笔记本,想要用电就需要将二相插座转换为三相,适配器就出现了 二相转三相的插座适配
阅读全文
摘要:工厂模式:定义一个用于创建对象的借口,让子类决定实例化哪一个类。 抽象工厂模式:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。 如果产品单一,最合适用工厂模式,但是如果有多个业务品种、业务分类时,通过抽象工厂模式产生需要的对象是一种非常好的解决方式。 再通俗深化理解下:工厂模
阅读全文
摘要:一、相关概念了解 首先知晓什么是工厂模式(概念)? ①实例化对象,用工厂方法代替new操作。②工厂模式包括工厂方法模式和抽象工厂模式。③抽象工厂模式是工厂方法模式的拓展。 其次明白工厂模式的意图 ①定义一个借口来创建对象,但是让子类来决定哪些类需要被实例化。②工厂方法把实例化的工作推迟到子类中去实现
阅读全文
摘要:单例模式属于创建模式的一种,在Java中也是最重要、最简单、最常用的设计模式之一,当遇到以下情况时,单例模式就派上用场了。 再比如——对象。。。。。。。。。。。 一般一个类能否做成单例,最容易区别的地方就在于,这些类,在应用中如果有两个或者两个以上的实例会引起错误,又或者我换句话说,就是这些类,在整
阅读全文
摘要:1.开闭原则 2.里氏代换原则 一般而言,违反里氏代换原则的,也违背了“开—闭”原则,反之则不一定成立。 3.依赖倒转原则 4.合成/聚合复用原则 5.接口隔离原则 6.迪米特法则
阅读全文