wordpress任务网站,wordpress哪款主题好用,食品营销型网站,英德建设网站1.单例模式#xff0c;整个项目中只能存在一个对象实例#xff0c;这就被称为单例模式 #xff0c;单例模式又称为
饿汉式#xff08;一开始不加载#xff0c;简称懒加载#xff09; 静态常量的方式#xff0c; 静态代码块的方式
懒汉式#xff08;一开始就进行加载整个项目中只能存在一个对象实例这就被称为单例模式 单例模式又称为
饿汉式一开始不加载简称懒加载 静态常量的方式 静态代码块的方式
懒汉式一开始就进行加载 线程不安全 // 线程安全同步方法 // 效率比较低每次都需要进行判断 线程安全同步代码块 // 效率高但是可以造成多个实例
双重检查 // 效率高也不会造成多个实例 静态内部类 // 效率高 也不会出现安全问题 枚举 // 效率高安全
// 2. 简单工厂模式
简单工厂模式是属于创建型模式是工厂模式的一种简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例 定义 定义了一个创建对象的类有这个类来封装实例化对象的行为
2.工厂方法模式
定义了一个创建对象的抽象方法由子类决定要实例化的类。工厂方 法模式将对象的实例化推迟到子类
3、抽象工厂模式
抽象工厂模式定义了一个interface用于创建相关或有依赖关系的对象簇而无指明具体的类抽象工厂模式可以将简单工厂模式和工厂方法模式进行整合。从设计层面看抽象工厂模式就是对简单工厂模式的改进(或者称为进一步的抽4) 将工厂抽象成两层AbsFactory(抽象工厂) 和 具体实现的工厂子类。程序员可根据创建对象类型使用对应的工厂子类。这样将单个的简单工厂类变成了工厂簇更利于代码的维护和扩展 3简单来说通过抽象工厂来创建一个简单工厂
5、原型模式
原型模式(Prototype模式)是指用原型实例指定创建对象的种类并且通过拷贝这些原型创建新的对象原型模式是一种创建型设计模式允许一个对象再创建另外一个可定制的对象无需知道如何创建的细节
6、建造者模式
建造者模式Builder Pattern 又叫生成器模式是一种对象构建模式。它可以将复杂对象的建造过程抽象出来抽象类别使这个抽象过程的不同实现方法可以构造出不同表现属性的对象建造者模式 是一步一步创建一个复杂的对象它允许用户只通过指定复杂对象的类型和内容就可以构建它们用户不需要知道内部的具体构建细
7、适配器模式
适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示主的目的是兼容性让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper)主要分为三类类适配器模式、对象适配器模式、接口适配器模式
8、桥接模式
桥接(Bridge)模式属于结构型设计模式。通过提供抽象化和实现化之间的桥接结构来实现二者的解耦。把抽象(abstraction)与行为实现(implementation)分离开来从而可以保持各部分的独立性以及应对它们的功能扩展)
9、 装饰者模式
动态的将新功能附加到对象上。在对象功能扩展方面它比继承更有弹性装饰者模式也体现了开闭原则(ocp)
10、组合模式 组合模式Composite Pattern指将对象组合成树形结构以表示“部分-整体”的层次结构 使得用户对单个对象和组合对象的使用具有一致性
11、外观模式
外观模式Facade也叫“过程模式外观模式为子系统中的一组接口提供一个一致的界面此模式定义了一个高层接口这个接口使得这一子系统更加容易使用外观模式通过定义一个一致的接口用以屏蔽内部子系统的细节使得调用端只需跟这个接口发生调用而无需关心这个子系统的内部
12、享元模式
享元模式Flyweight Pattern 也叫 蝇量模式: 运用共享技术有效地支持大量细粒度的对象常用于系统底层开发解决系统的性能问题。像数据库连接池里面都是创建好的连接对象在这些连接对象中有我们需要的则直接拿来用避免重新创建如果没有我们需要的则创建一个享元模式能够解决重复对象的内存浪费的问题当系统中有大量相似对象需要缓冲池时。不需总是创建新对象可以从缓冲池里拿。这样可以降低系统内存同时提高
13、代理模式
代理模式为一个对象提供一个替身以控制对这个对象的访问。即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。被代理的对象可以是远程对象、创建开销大的对象或需要安全控制的对象代理模式有不同的形式, 主要有三种 静态代理、动态代理 (JDK代理、接口代理)和 Cglib代理 (可以在内存动态的创建对象而不需要实现接口 他是属于动态代理的范畴)
14、模板方法模式
模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。即应该让父类成为子类的模板所有重复的代码都应该上升到父类而不是让每个子类都去重复子类只负责各自不同的算法步骤。
15、命令模式
命令模式Command Pattern在软件设计中我们经常需要 向某些对象发送请求但是并不知道请求的接收者是谁也不知 道被请求的操作是哪个 我们只需在程序运行时指定具体的请求接收者即可此时可以 使用命令模式来进行设计命名模式使得请求发送者与请求接收者消除彼此之间的耦合让 对象之间的调用关系更加灵活实现解耦。在命名模式中会将一个请求封装为一个对象以便使用不同参 数来表示不同的请求(即命名)同时命令模式也支持可撤销的操作。
16、访问者模式
访问者模式Visitor Pattern封装一些作用于某种数据结构的各元素的操它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。主要将数据结构与数据操作分离解决 数据结构和操作耦合性问题访问者模式的基本工作原理是在被访问的类里面加一个对外提供接待访问的接口访问者模式主要应用场景是需要对一个对象结构中的对象进行很多不同操(这些操作彼此没有关联)同时需要避免让这些操作污染这些对象的类可选用访问者模式
17、迭代器模式
迭代器模式Iterator Pattern是常用的设计模式属于行为型模式如果我们的集合元素是用不同的方式实现的有数组还有java的集合类或者还有其他方式当客户端要遍历这些集合元素的时候就要使用多种遍历方式而且还会暴露元素的内部结构可以考虑使用迭代器模式解决。迭代器模式提供一种遍历集合元素的统一接口用一致的方法遍历集合元素不需要知道集合对象的底层表示即不暴露其内部的结
18、观察者模式
观察者模式对象之间多对一依赖的一种设计方案被依赖的对象为Subject 依赖的对象为ObserverSubject通知Observer变化,比如这里的奶站是 Subject是1的一方。用户时Observer是多的一方
19、中介者模式
中介者模式Mediator Pattern用一个中介对象来封装一系列的对象交互。中介者使各个对象不需要显式地相互引用从而使其耦合松散而且可以独立地改变它们之间的交互中介者模式属于行为型模式使代码易于维护比如MVC模式CController控制器是MModel模型和VView视图的中介者在前后端交互时起到了中间人的作用
20、备忘录模式
备忘录模式Memento Pattern在不破坏封装性的前提下捕获一个对象的内部状态并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态) 可以这里理解备忘录模式现实生活中的备忘录是用来记录某些要去做的事情或者是记录已经达成的共同意见的事情以防忘记了。而在软件层面备忘模式有着相同的含义备忘录对象主要用来记录一个对象的某种状态或者某些数据当要做回退时可以从备忘录对象里获取原来的数据进行恢复操作) 备忘录模式属于行为型
21、解释者模式
基本介绍 在编译原理中一个算术表达式通过词法分析器形成词法单元而后这些词单元再通过语法分析器构建语法分析树最终形成一颗抽象的语法分析树。里的词法分析器和语法分析器都可以看做是解释器 解释器模式Interpreter Pattern是指给定一个语言(表达式)定义它的文的一种表示并定义一个解释器使用该解释器来解释语言中的句子(表达式 应用场景• 应用可以将一个需要解释执行的语言中的句子表示为一个抽象语法树• 一些重复出现的问题可以用一种简单的语言来表达• 一个简单语法需要解释的场景 这样的例子还有比如编译器、运算表达式计算、正则表达式、机器
22、状态模式
状态模式State Pattern它主要用来解决对象在多种状态转换时需要对外输出不同的行为的问题。状态和行为是一一对应的状态之间可以相互转换当一个对象的内在状态改变时允许改变其行为这个对象看起来像是改变了其类
23、策略模式
策略模式Strategy Pattern中定义算法族分别封装起来让他们之间可以互相替换此模式让算法的变化独立于使用算法的客户2) 这算法体现了几个设计原则第一、把变化的代码从不变的代码中分离出来第二、针对接口编程而不是具体类定义了策略接口第三、多用组合/聚合少用继承客户通过组合方式使用策
24、责任链模式
职责链模式Chain of Responsibility Pattern又叫 责任链模式为请求创建了一个接收者对象的链(简单示意图)。这种模式对请求的发送者和接收者进行解耦。职责链模式通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求那么它会把相同的请求传给下一个接收者依此类