随笔分类 - 设计模式与算法 / 设计模式
摘要:一、设计模式原则 设计模式有7大设计原则: 1、开闭原则 开闭原则时面向对象编程中,最核心最基础的一个原则,所有的设计模式都围绕着这一个原则去实践。 2、里氏替换原则 里氏替换原则说的是如果使用了继承来进行功能扩展的话,不要再子类中更改父类已实现的方法,而是通过添加新的方法去扩展父类的功能。 3、依
阅读全文
摘要:一、单例模式的经典实现方式 单例模式分为饿汉式(立即加载)和懒汉式(延迟加载),其中懒汉式又可以分为双重检查锁、静态内部类和枚举三种情况。; 单例模式使用不当,则会产生线程安全问题: 饿汉式不会产生线程安全问题,但是它一般不使用,因为他会浪费内存空间; 懒汉式会合理的使用内存空间,因为只有第一次被加
阅读全文
摘要:模板模式总的来说就是父类定义好步骤与方法,且父类将公共的内容进行抽取,然后子类只做不同的内容即可。 @Slf4j public abstract class GoHomeTemplate { public void goHomeMian(){ log.info(" goStation "); buy
阅读全文
摘要:原型模式就是为了对象拷贝的,省掉了堆内存一系列的复杂流程。 对象拷贝分为深拷贝和浅拷贝 浅拷贝:将对象中的简单类型和String类型的值进行复制,引用类型复制的只是对象的引用地址 深拷贝:所有的类型都是直接复制的值,包括引用对象;如果是引用对象,会新创建一个对象,并且引用地址改为该对象。 原型模式的
阅读全文
摘要:构建者模式:将一个复杂对象的构造与它的表示分离,使同样的构造可以构造出不同的表示,这样的设计模式被称为构建者模式。 构建者模式主要需要以下几个部分组成: 1、需要构建的对象(例如Animal对象) 2、构建对象的实现类(例如AnimalBuilder对象),在该类中需要提供三种方法 (1)私有的构建
阅读全文
摘要:面向对象设计原则 设计原则名称 定义 描述 开闭原则 对扩展开放,对修改关闭 该原则是设计原则的总纲,抽象化是开闭原则的关键 单一职责原则 一个类只负责一个领域的相应职责 单一职责原则是实现高内聚低耦合的指导方针 接口隔离原则 使用多个单一功能的接口,而不使用一个多功能接口 接口隔离也是实现高内聚低
阅读全文
摘要:工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。 一、简单工厂&静态工厂 1、简单工厂 pack
阅读全文
摘要:装饰者模式是动态的将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案。 简单的说,装饰者模式由三部分组成,分别是基础抽象类,可以被装饰者包装的类、装饰者类,后两种类均是基础抽象类的子类,但是里面的方法对于基础类有更多的扩展,最终使用,均是使用的基础类进行操作,因此,无论怎么包装,
阅读全文
摘要:观察者模式,主要就是一个地方的改变,需要通知多个其他依赖方,例如,一个订单的状态发生变更,后续的物流、保险等许多系统都需要用到这个变化值,那么就可以考虑使用观察者模式(这里不考虑跨系统问题) 在JDK中,Swing API就用到了观察者模式,放一个按钮被触发时,所有需要依赖该通知的地方,都会收到通知
阅读全文
摘要:策略模式,简单的来说就是针对接口编程,一个类的行为或其算法可以在运行时更改。 策略模式主要解决:一种类型有多种情况,使用 if...else 所带来的复杂和难以维护。 如何解决:将这些算法封装成一个一个的类,任意地替换。 关键代码:实现同一个接口。 优点: 1、算法可以自由切换。 2、避免使用多重条
阅读全文