设计模式
BQW_
吉林大学
北京大学
目前的兴趣:自然语言处理
展开
-
【设计模式】策略模式
一、场景实现某个功能存在多种策略或算法,需要根据不同的条件来选择不同的策略或算法。例如排序的功能,可以使用不同的排序算法:冒泡、快排、选择等。二、策略模式策略模式中定义了一系列可以相互替换的策略,来提供更加灵活的选择。1. 模式结构1.1 抽象策略类(strategy)提供一个公共的接口,具体策略类通过不同的方式实现该接口。1.2 具体策略类(concrete strategy)实现了抽象策略类的接口,提供了具体的实现。1.3 环境类(context)持有策略类的引用,供外部调用。2.原创 2020-09-21 23:50:55 · 838 阅读 · 0 评论 -
【设计模式】模板方法模式
一.场景某个系统或算法的需要执行的步骤且执行顺序也已经明确,但是某些步骤的具体实现还未确定。二.模板方法模式通过抽象类、抽象方法来明确各个步骤及其执行顺序,然后通过继承该抽象类来实现具体的步骤。1.模板方法模式的结构1.1 抽象类负责定义算法的轮廓,可以包含几种类型的方法:抽象方法:没有具体的实体,只是对某个步骤的声明;具体方法:某个步骤的具体实现;钩子方法:用于动态的控制算法各个步骤的执行;1.2 具体子类实现抽象类中所定义的抽象方法和钩子方法.三、例子1. 描述这里尝试将原创 2020-09-20 15:18:10 · 207 阅读 · 1 评论 -
【设计模式】观察者模式
参考来源:http://www.runoob.com/design-pattern/observer-pattern.html 介绍 当对象间存在一对多关系时,则使用观察者模式。例如,当一个对象被修改时,则会自动通知它的依赖对象。 作用 在场景“一个对象状态改变要通知其他对象”中实现低耦合的设计; 如果观察者和所观察的对象之间存在循环依赖,将导致系统崩溃; 实现 创建...原创 2019-04-01 14:05:42 · 226 阅读 · 0 评论 -
【设计模式】单例模式
介绍 单例模式的目的是使某个类只能实例化一个对象,并提供接口供外部使用这个唯一的对象。 实现单例模式的核心 将构造函数私有化,这样保证除了在类内部实例化对象外,其他地方均无法实例化该类。 实现 经典单例模式的实现 public class Singleton { private static Singleton uniqueInstance; private...原创 2019-04-01 18:08:49 · 104 阅读 · 0 评论 -
【设计模式】装饰器模式
参考来源:http://www.runoob.com/design-pattern/decorator-pattern.html 介绍 装饰器模式允许向一个添加新的功能,但是有不改变其结构。这种模式创建一个用于包装原始类的装饰类,在保证原始类方法签名不变的情况下提供新的功能。 作用 在不想增加很多子类的情况下扩展类; 作为继承的替代方式,而且类之间不会相互耦合; 实现 ...原创 2019-04-02 08:37:10 · 166 阅读 · 0 评论 -
【设计模式】外观模式
参考链接:https://www.runoob.com/design-pattern/facade-pattern.html 介绍 外观模式隐藏了系统的复杂性并向客户端提供一个更加简洁的访问系统的接口。这种模式涉及到一个单一的类,该类提供了简化的方法供客户端调用。 作用 为子系统定义高层接口,使子系统更加容易使用; 缺点:不符合开闭原则,修改很麻烦; 实现 我们的子系...原创 2019-04-03 09:33:44 · 128 阅读 · 0 评论 -
【设计模式】适配器模式
参考链接:https://www.runoob.com/design-pattern/adapter-pattern.html 介绍 适配器模式是为了兼容两个不同的接口而设计的。 作用 将一个类的接口转化为客户端希望的另外一个接口,一般而且适配器模式不应该详细设计时添加,而是解决那些正在使用的项目的问题。 缺点:太多适配器会造成系统混乱; 实现 在这个例子...原创 2019-04-03 10:42:50 · 104 阅读 · 0 评论