随笔分类 - 设计模式
摘要:简介 观察者模式是一种行为设计模式,允许你定义一种订阅机制,可在对象事件发生时通知多个 “观察” 该对象的其他对象。例如,Excel中的数据与折线图、饼状图、柱状图之间的关系 组成 发布者(Publisher) 会向其他对象发送关注的事件。 事件会在发布者自身状态改变或执行特定行为后发生。 发布者中
阅读全文
摘要:简介 策略模式是一种行为设计模式,它将一组行为转换为对象,并使其在原始上下文对象内部能够相互替换 原始对象被称为上下文,它包含指向策略对象的引用并将执行行为的任务分派给策略对象 组成 策略接口(Strategy):所有具体策略的通用接口,它声明了一个上下文用于执行策略的方法 具体策略(Concret
阅读全文
摘要:简介 适配器模式将某个类的接口转换成客户端期望的另一个接口表示,主要目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作 举个例子:在生活中家用电压一般是220V,手机的充电电压通常是5v,如果直接把家用电压接到电池接到电池两极直接充电的话,电池会烧掉。这个时候充电器就扮演一个适配器的角
阅读全文
摘要:简介 原型是一种创建型设计模式, 使你能够复制对象, 甚至是复杂对象, 而又无需使代码依赖它们所属的类 所有的原型类都必须有一个通用的接口, 使得即使在对象所属的具体类未知的情况下也能复制对象。 原型对象可以生成自身的完整副本, 因为相同类的对象可以相互访问对方的私有成员变量 原型 (Proto
阅读全文
摘要:简介 生成器模式的核心是当构建一个对象的时候,需要包含多个步骤,虽然每个步骤具体的实现不同,但是都遵循一定的流程和规则。比如组装一辆汽车,需要引擎、座位、变速箱、定位器、行车电脑等,但不管怎么样,总需要经过一个一个步骤构建,对于这个例子,通过一个总控管理生成器,就可以使用生成器模式来生成一辆车及其使
阅读全文
摘要:简介 抽象工厂将工厂方法进一步抽象。定义了一个接口用于创建相关或有依赖关系的产品簇,而无需指明具体的类。可以根据创建对象类型使用对应的工厂子类。这样将单个的简单工厂类变成了工厂簇,更利于代码的维护和扩展 工厂方法与抽象工厂方法的区别:工厂方法模式只有一个抽象产品类,而抽象工厂模式有多个。工厂方法模式
阅读全文
摘要:简介 在简单工厂方法中,当增加新的产品时需要对简单工厂类修改或者创建多个简单工厂类。工厂方法进一步的解耦,把工厂类抽象,不再负责所有实例的创建,而是把具体的创建工作交给子类去完成,实例化延迟到子类加载,由子类决定要实例化的类 工厂方法的核心是一个抽象工厂类,而不像简单工厂模式,把核心放在一个实类上
阅读全文
摘要:简介 简单工厂模式属于创建型模式,是工厂模式的一种。简单工厂模式通过定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类,这个父类具有共有的属性和方法。因在简单工厂模式中用于创建实例的方法通常是静态方法,因此也称为静态工厂方法模式 Product 表示产品接口,也可
阅读全文
摘要:简介 单例模式是一种创建型设计模式,能够保证一个类只有一个实例,并提供一个访问该实例的全局方法 识别方法:单例实例可以通过返回相同缓存对象的静态方法来识别 缺点:违反了单一职责原则(因为单例模式同时解决了两个问题:保证一个类只有一个实例、为该类提供全局的访问方法) 实现思路 将默认构造函数私有化,防
阅读全文
摘要:又是只能回答概念不能提出具体的实例出来论证所讲的观点(具体实例后面再补充吧) 单一职责原则 单一职责原则是指一个类只负责一个职责,它使得类的职责更单一。这样每个类只需要负责自己的那部分,类的复杂度就会下降。如果职责划分的很清楚,那么代码的维护难度降低。如果将所有功能都放在一个类中,那么这个类就会变得
阅读全文