设计模式
文章平均质量分 65
cuidianjay
我现在做的事情是最重要的吗?
展开
-
模板方法模式
模板模式(Template Pattern)介绍优点实现源码应用介绍定义一个操作的算法框架,将一些步骤实现延迟到子类中。模板方法可以让子类在不更改算法结构的情况下修改特定步骤。如果很多类都实现通用的方法,那可以用模板方法将这些通用方法提取到抽象类中,让子类实现特定步骤。优点封装不变算法部分,扩展可变具体实现。提取公共代码,便于维护。复合开闭原则。实现public class TemplateMethodTest { public static void main(String[原创 2021-08-07 16:28:42 · 58 阅读 · 0 评论 -
原型设计模式
原型设计模式(Property Pattern)介绍实现工厂模式+原型模型实现Cloneable接口,重写clone()方法使用源码应用注意介绍原型模式用于创建重复的对象,又能保证性能。当创建一个对象代价比较大时,可以使用这种模式。实际使用中原型模式很少单独出现,通常与工厂方法模式一起使用,工厂方法将创建的对象缓存起来,等下次需要再创建这种对象时,使用clone()方法克隆一个对象提供给使用者。clone出来的对象与原对象是两个不同的实例对象。主要优点:可以高性能的创建重复的对象规原创 2021-08-07 13:58:14 · 83 阅读 · 0 评论 -
建造者模式
建造者模式介绍实现示例电脑电脑建造者使用源码应用介绍将一个复杂对象的创建与其表示先分离,同样的创建过程可以创建不同的表示。主要解决: 当系统需要创建一个复杂的对象时,这个对象的各个子对象通常由一定的算法构成,由于需求的变化,各个子对象经常会有很大的变化,但是将它们组合在一起的算法却是稳定的。何时使用:需要创建一个具有复杂内部结构的对象时需要生成的对象内部属性本身相互依赖主要优点:建造者独立,容易扩展便于控制细节风险实现示例一个电脑由CPU、显卡、内存、主板、电源等组件组原创 2021-08-07 10:35:06 · 96 阅读 · 0 评论 -
抽象工厂设计模式
抽象工厂设计模式介绍实现类图实现方式数据库工具需要有两个产品,Connection用于连接数据库,Command用于执行命令Mysql实现Oracle实现使用介绍提供一个创建一系列相关或者互相依赖的对象的接口,无需指定他们具体的类。主要解决: 解决接口选择的问题。何时使用: 系统中有多于一个类别的产品,而系统只需要消费其中一个类别中的一系列产品。如何解决: 在一个类别的产品里,定义一系列的多个产品。关键代码: 在一个工厂接口里聚合多个同类产品的抽象。主要优点:当你从工厂里获取的一系列产品时原创 2021-08-07 01:17:12 · 50 阅读 · 0 评论 -
工厂方法模式
工厂方法模式介绍实现类图实现方式简单工厂模式工厂模式使用介绍创建对象时,不会对客户端暴露创建逻辑,使用一个共同的接口指向新创建的对象。意图: 定义一个创建对象的接口,让子类决定自己实例化哪一个类。Factory Method使一个类的实例化延迟到子类。主要解决: 解决接口选择的问题。何时使用:不知道该使用对象的确切类型时希望为框架提供扩展其内部组件的方法时如何解决: 让其子类实现工厂接口,返回一个抽象对象。关键代码: 创建过程在子类进行。主要优点:1. 符合单一职责原则2. 符合原创 2021-08-06 20:19:52 · 95 阅读 · 0 评论 -
设计模式简介
设计模式简介设计模式的作用设计模式的类型1. 创建型2. 结构型3. 行为型设计模式六大原则1、开闭原则(Open Close Principle)2、里氏代换原则(Liskov Substitution Principle)3、依赖倒转原则(Dependence Inversion Principle)4、接口隔离原则(Interface Segregation Principle)5、迪米特法则,又称最少知道原则(Demeter Principle)6、合成复用原则(Composite Reuse Pr原创 2021-08-06 17:40:32 · 55 阅读 · 0 评论 -
单例设计模式
单例设计模式介绍实现类图实现方式懒汉模式+DCL+线程安全+防止指令重排序恶汉模式静态内部类枚举介绍意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点。主要解决:一个全局使用的类频繁地创建与销毁。何时使用:当您想控制实例数目,节省系统资源的时候。如何解决:判断系统是否已经有这个单例,如果有则返回,如果没有则创建。关键代码:构造函数是私有的。实现类图实现方式懒汉模式+DCL+线程安全+防止指令重排序特点:线程安全,在多线程情况下保持高性能。DCL(Double Check原创 2021-08-06 17:27:40 · 68 阅读 · 0 评论