- 博客(16)
- 收藏
- 关注
原创 模板模式(Template Pattern)
模板模式(Template Pattern):行为型模式之一,抽象父类定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。当我们要完成在某一细节层次一致的一个过程或一系列步骤,但其个别步骤在更详细的层次上的实现可能不同时,我们通常考虑模板方法模式来处理。模板模式只是在一定程度上完成了解耦的操作,当不变的和可变的行为在方法的子类实现中混合在一起的时候,不变的行为就会在子类中重复出现。我们通过模板方法模式把这些行文搬移到单一的地方(提取公有部分,抽象成抽象方法),这样就帮助子类摆脱重复的不变行为的纠缠。
2023-06-05 17:00:48 187
原创 策略模式(Strategy Pattern)
策略模式(Strategy Pattern):行为型模式之一,将算法的定义放在专门的策略类中,每一个策略类封装了一种实现算法,行为之间可以相互替换。策略模式,实质就是封装了一些算法,让算法可以互相替换,用户可以自由选择这些算法进行操作。Java中常用的集合比较器,就是策略模式的一种应用,除此之外,Spring中很多BeanFactory的实现,在配置BeanFactory的时候,选择何种factory,这其实就是一种策略的选择,也算是策略模式的一种。
2023-06-05 15:20:41 185
原创 享元模式(Flyweight Pattern)
一、定义享元模式(Flyweight Pattern):结构型模式之一,运用共享技术有效地支持大量细粒度的对象。二、UML类图三、角色职责抽象享元角色(IFlyweight):享元对象抽象基类或接口,同时定义出对象的外部状态和内部状态的接口或实现。具体享元角色(ConcreteFlyweight):实现抽象角色定义的业务。该角色的内部状态处理应该与环境无关,不会出现一个操作改变内部状态,同时修改了外部状态的情况。享元工厂(FlyweightFactory):负责管理享元对象池和创建享元对象。
2022-04-18 18:36:05 611
原创 组合模式(Composite Pattern)
一、定义组合模式(Composite Pattern):结构型模式之一,组合多个对象形成树形结构以表示“整体-部分”的关系的层次结构。组合模式对叶子节点和容器节点的处理具有一致性,又称为整体-部分模式。二、UML类图三、角色职责抽象构件(Component):叶子构件与容器构件共同继承的父类或者是共同实现的接口,该角色中包含所有子类共有方法的声明和实现,在抽象构件中定义了管理子构件的方法,新增构件、删除构件、获取构件。叶子构件(Leaf):表示叶子节点,没有子节点,对于继承父类的管理子节点的方
2022-04-18 16:47:07 725
原创 桥接模式(Bridge Pattern)
一、定义桥接模式(Bridge Pattern):结构型模式之一,将抽象与实现分离,使它们可以独立变化。二、UML类图三、角色职责外观角色(Facade):提供一个外观接口,对外,它提供一个易于客户端访问的接口,对内,它可以访问子系统中的所有功能。子系统角色(SubSystem):子系统在整个系统中可以是一个或多个模块,每个模块都有若干类组成,这些类可能相互之间有着比较复杂的关系。客户端(Client):外观接口调用测试者。四、代码实现前言:举个栗子,我们家里有很多家居,比如空调、热水
2022-04-18 14:16:01 785
原创 外观模式(Facade Pattern)
一、定义外观模式(Facade Pattern):结构型模式之一,提供了一个统一的接口,用来访问子系统中的一群接口。外观模式定义了一个高层接口,让子系统更容易使用。二、UML类图三、角色职责外观角色(Facade):提供一个外观接口,对外,它提供一个易于客户端访问的接口,对内,它可以访问子系统中的所有功能。子系统角色(SubSystem):子系统在整个系统中可以是一个或多个模块,每个模块都有若干类组成,这些类可能相互之间有着比较复杂的关系。客户端(Client):外观接口调用测试者。四
2022-03-09 14:49:35 3768 1
原创 代理模式(Proxy Pattern)
一、定义代理模式(Proxy Pattern):结构型模式之一,为真实对象提供一个代理,从而控制对真实对象的访问。二、UML类图三、角色职责抽象角色(Subject):通过接口或抽象类声明真实角色实现的业务方法。代理角色(Proxy):实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并可以附加自己的操作。真实角色(RealSubject):实现抽象角色,定义真实角色所要实现的业务逻辑,供代理角色调用。四、代码实现前言:举个栗子,我马上就要过生日了,为了奖励辛
2022-03-09 11:25:21 700
原创 装饰器模式(Decorator Pattern)
一、定义装饰器模式(Decorator Pattern):结构型模式之一,指在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。二、UML类图三、角色职责抽象构件(Component):定义一个抽象接口以规范准备接收附加责任的对象。具体构件(Concrete Component):实现抽象构件,通过装饰角色为其添加一些职责。抽象装饰(Decorator):继承抽象构件,并包含具体构件的实例,可以通过其子类扩展具体构件的功能。
2022-03-08 18:02:52 461
原创 适配器模式(Adapter Pattern)
一、定义适配器模式(Adapter Pattern):结构型模式之一,将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的哪些类可以一起工作。二、UML类图三、角色职责目标角色(Target):该角色定义把其他类转换为何种接口,也就是我们的期望接口。源角色(Adaptee):你想把谁转换成目标角色,这个“谁”就是源角色,它是已经存在的、运行良好的类或对象。适配器角色(Adapter):适配器模式的核心角色,其他两个角色都是已经存在的角色,而适配器
2022-03-08 14:24:38 20909 16
原创 原型模式(Prototype Pattern)
一、定义原型模式(Prototype Pattern):创新型模式之一,用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。二、UML类图三、角色职责原型类(Prototype):声明一个克隆自己的接口。具体原型类(Concrete Prototype):实现一个克隆自己的操作。客户端(Client):客户端让一个原型对象克隆自己,从而创建一个新的对象。四、代码实现前言:举个栗子,我们现在创建了一个新的QQ号,我们想把我们老QQ号上的好友克隆到新的QQ号上。那么,常规代码如下
2022-03-07 22:51:14 329
原创 建造者模式(Builder Pattern)
一、定义建造者模式(Builder Pattern):创新型模式之一,是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。二、UML类图三、角色职责抽象建造者(Builder):给出一个抽象结论,以规范产品对象的各个组成成分的建造。这个接口规定要实现复杂对象的那些部分的创建,并不涉及具体的对象部件的创建。具体建造者(Concrete Builder):实现Builder接口,针对不同的商业逻辑,具体化复杂对象的各部分的创建。在构造过程完成后,提供产品的实例。指导者(
2022-03-07 15:30:24 567
原创 单例模式(Singleton Pattern)
一、定义单例模式(Singleton Pattern):创新型模式之一,保证一个类仅有一个实例,并提供一个访问它的全局访问点。二、UML类图三、代码实现单例模式有两种类型:饿汉式、懒汉式。饿汉式:在类加载时就已经创建好了该单例对象,等待被程序调用。public class EarlySingleton { private static EarlySingleton singleton = new EarlySingleton(); private EarlySinglet
2022-03-07 11:20:07 179
原创 抽象工厂模式(Abstract Factory Pattern)
一、定义抽象工厂模式(Abstract Factory Pattern):创新型模式之一,提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。二、UML类图三、角色职责抽象产品(Product):它是定义产品的接口,是工厂方法模式所创建对象的超类型,也就是产品对象的公共父类。具体产品(Concrete Product):它实现了抽象产品接口,某种类型的具体产品由专门的具体工厂创建,具体工厂和具体产品之间一一对应。抽象工厂(Factory):在抽象工厂类中声明了工厂方法(Fac
2022-03-05 15:24:31 280
原创 工厂方法模式(Factory Method Pattern)
一、定义工厂方法模式(Factory Method Pattern):创新型模式之一,简称工厂模式,通过定义工厂父类负责定义创建对象的公共接口,而子类则负责生成具体的对象。二、UML类图三、角色职责抽象产品(Product):它是定义产品的接口,是工厂方法模式所创建对象的超类型,也就是产品对象的公共父类。具体产品(Concrete Product):它实现了抽象产品接口,某种类型的具体产品由专门的具体工厂创建,具体工厂和具体产品之间一一对应。抽象工厂(Factory):在抽象工厂类中声明了工
2022-03-04 22:34:21 330
原创 简单工厂模式(Simple Factory Pattern)
一、定义简单工厂模式(Simple Factory Pattern):创新型模式之一,在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。二、UML类图三、角色职责工厂角色(Creator):这是简单工厂模式的核心,由它负责创建所有的类的内部逻辑。当然工厂类必须能够被外界调用,创建所需要的产品对象。抽象产品角色(Product):简单工厂模式所创建的所有对象的父类,注意,这里的父类可以是接口也可以是抽象类,它
2022-03-04 17:45:23 1140
原创 C#将数据写入本地缓存
一、什么是缓存缓存就是数据交换的缓冲区(又称作Cache),当某一硬件要读取数据时,会首先从缓存中查找需要的数据,找到了则直接执行,找不到的话则从内存中查找。由于缓存的运行速度比内存快得多,故缓存的作用就是帮助硬件更快地运行。因为缓存往往使用的是RAM(断电即掉的非永久性储存),所以在用完后还是会把文件送到硬盘等存储器里永久存储。电脑里最大的缓存就是内存条了,最快的是CPU上镶的L1和L2缓存,显卡的显存是给显卡运算芯片用的缓存,硬盘上也有16M或者32M的缓存。其实,缓存是CPU的一部分,它存在于C
2021-08-05 16:58:19 3455
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人