设计模式
1、说下你知道的设计模式有哪些?下面 3 种类型中各挑几个常见的或者你用过的说就可以了。2、工厂方法模式和抽象工厂模式有什么区别?工厂方法模式:一个抽象产品类,可以派生出多个具体产品类。 一个抽象工厂类,可以派生出多个具体工厂类。每个具体工厂类只能创建一个具体产品类的实...
2024-01-10设计模式杂谈
关于设计的个人看法我们设计一个功能的时候,要考虑的无非是那些问题:可靠性,鲁棒性,解耦性,扩展性,可读性等等。我们对代码和功能的设计过程,从面相对象的角度来讲就是一个拟物或者拟人化的一个过程——我们先确定某个功能需要什么样的角色或者“零部件”参与,然后创建对应的类...
2024-01-10设计模式详解
设计模式是什么设计模式是一个通过定义、使用、测试去解决特定问题的方法,是针对软件设计中在给定条件下会重复性发生的问题而提出的一种通用性的可重用解决方案,设计模式不是可以直接转化为代码的完整设计,它是用于描述在不同情况下解决问题的通用方案。设计模式的作用设计模式通过...
2024-01-10CSS设计模式
什么是设计模式?曾有人调侃,设计模式是工程师用于跟别人显摆的,显得高大上;也曾有人这么说,不是设计模式没用,是你还没有到能懂它,会用它的时候。先来看一下比较官方的解释:“设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。使...
2024-01-10设计模式开闭原则
今天我们聊设计模式中的开闭原则,即“一个软件实体应当对扩展开放,对修改关闭。即软件 实体应尽量在不修改原有代码的情况下进行扩展。”,不修改原有的代码就是新增类。我以配置数据源为例,假设我们有两个数据源,未来还可能新增一个数据源,我们应当如何写配置类呢?1.写抽象配...
2024-01-10JAVA设计模式
一、单例模式1、饿汉式(在类初始化时直接创建对象,不存在线程安全) (1) 直接实例化public class Sigleton{ //声明一个静态变量 public static final Sigleton INSTANCE =new Sigleton(); //私有化构造方法 private Sigleton(){} } (2) 静态代码块饿汉式public class Sigleton{ public static final Sigleton IN...
2024-01-10设计模式装饰模式
一、简介1、概念 装饰模式又名包装模式,对客户端以透明的方式扩展对象的功能,是继承关系的一个替代方案。 但是大部分装饰模式都是半透明的<介于装饰模式和适配器模式直接>,允许装饰模式改变接口,增加方法。2、应用场景 动态地给一个对象添加一些额外的职责。装饰模式相比继承更为灵...
2024-01-10设计模式命令模式
设计模式-命令模式定义命令模式是一个高内聚的模式,其定义为:将一个请求封装成一个对象,从而让你使用不同的请求(Command)把客户端参数化,并对请求排队或者记录请求日志,可以提供命令的撤销或恢复功能。从定义上有点难理解这个意图,个人觉得这个可以分两块来解读这个模式第一点:...
2024-01-10承诺重试设计模式
继续重试直到承诺解决的模式(带有delay和maxRetries)。 在结果满足条件之前一直重试的模式(带有delay和maxRetries)。具有无限重试次数(提供延迟)的高效内存动态模式。 继续重试,直到承诺解决为止(该语言是否有任何改进社区?)Promise.retry = function(fn, times, delay) { return new Promise(function(resol...
2024-01-10设计模式迭代器模式
无须暴露聚合对象的内部表示遍历任务交由迭代器完成,简化聚合类遍历的方式可扩展模式结构迭代器模式主要包含以下角色。抽象聚合(Aggregate)角色:定义存储、添加、删除聚合对象以及创建迭代器对象的接口。具体聚合(ConcreteAggregate)角色:实现抽象聚合类,返回一个具体迭代器的实例...
2024-01-10什么设计模式更好?
当用2个对象作为参数编写函数时,比如比较函数或向量sum,什么设计模式更好?什么设计模式更好?1)将函数写入对象类中,只取得第二个对象。2)用一个静态函数写一个外部类,它将得到两个对象。为什么和什么时候?回答:在Java中,你有Comparable.compareTo(o1)是代表一个对象的执行,并采取第...
2024-01-10设计模式系列委派模式
定义委派模式就是负责任务的调用和分配,跟 设计模式系列--代理模式很像,可以看作是一种特殊情况下的静态代理的全权代理,但是代理模式注重过程,而委派模式注重结果。实现方式一般在公司,老板有什么想法,首先是和他手下的管理人员沟通,管理人员将老板的想法落实后,将任务拆解派发...
2024-01-10设计模式学习单例模式
1.懒汉懒汉模式是在需要用到该实例的时候才进行实例化 优点:节约资源,在需要用到该实例的时候才初始化缺点:线程非安全,并发访问情况下,有可能多次实例化,并且每次实例化都覆盖上一次的实例public class Singleton { private static Singleton SINGLETON; private Singleton(){} public static Singleton ...
2024-01-10设计模式系列单例模式
实现方式1 、饿汉式public class HungrySingleton { private static final HungrySingleton INSTANCE = new HungrySingleton(); private HungrySingleton() { } public static HungrySingleton getInstance() { return INSTANCE; }}public class HungrySingletonB { private static f...
2024-01-10设计模式模板方法模式
对于模板设计模式,最重要的就是要理解模板方法, 模板方法将算法定义成一组步骤, 其中任何步骤都可以是抽象的, 由子类负责实现. 这样能够保证算法结构保持不变, 同时由子类提供部分实现.详细描述类图如下:其中templateMethod()就是模板方法, 而在模板方法中会使用primitiveOperation1()和primitiveOperation2()...
2024-01-10设计模式学习代理模式
代理模式主要分为三种,静态代理、动态代理、Cglib代理一、静态代理静态代理的条件是目标类与代理类必须实现同一个接口然后通过调用相同的函数完成对目标函数的调用 ,业务操作由目标类实现,非业务操作由代理类实现1.接口public interface Test { void test();}2.目标类public class TestImpl implements T...
2024-01-10单例设计模式那些事儿
单例设计模式是最常用的设计模式之一。单例设计模式,单就其名字就可以大概知道其意义。单,也就是一个;例,也就是实例对象。所以说单例就是只有一个实例化对象。因此我们可以对单例设计模式作如下的定义: 单例设计模式用于限定某个特定对象只能被创建一次,并且向整个系统提供对自...
2024-01-10设计模式系列原型模式
适用场景:1、类初始化消耗资源较多2、new 产生的一个对象需要非常繁琐的过程(数据准备、访问权限等)3、构造函数比较复杂原型模式创建方式分为两种:浅克隆 ,深克隆实现方式1、浅克隆克隆出的新对象的引用属性内存地址还是指向原实例属性地址。即新对象与原对象引用属性共用同一内...
2024-01-10设计模式一一一策略模式
jdk中的观察者模式: Observer 观察者 说明:观察(监听)着感兴趣的对象,通过将自身注册到感兴趣的对象中,并且由感兴趣的对象发通知来实现观察(监听)的效果。收到通知后,根据通知的内容做相应的处理。 Observable 被观察者 说明:维护者对自身感兴趣的观察...
2024-01-10设计模式一一一装饰模式
目的:对对象的相应功能进行增强。 应用:对提供基础功能的类进行个性化增强。 两大要素: 1,被装饰的类封装于装饰实现类的内部,从而形成对象之间的引用关系。 2,装饰实现类同样实现了原始接口(原始接口即:被装饰类实现的接口) ...
2024-01-10设计模式结构型外观模式
一、外观模式简单介绍外观模式就是解决多个复杂接口带来使用困难,起到简化用户操作的作用。二、外观模式组成部分外观类(Facade):为调用端提供统一的调用接口,外观类知道那些类负责处理请求,从而将调用端的请求代理给适当子系统处理;调用者(Client):外观接口的调用者;子系统集...
2024-01-10设计模式结构型代理模式
一、代理模式基本介绍代理模式为一个对象提供一个替身,以控制这个对象的访问。即通过代理模式访问目标对象。这样做的好处就是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能;被代理的对象可以是远程控制的对象,创建开销量大的对象或者需要安全控制的对象...
2024-01-10设计模式(9)装饰模式
装饰模式装饰模式的特点动态撤销功能装饰模式可以动态向一个现有的对象添加新的功能,同时又不改变其结构。就增加功能来说,使用继承的方式生成子类也可以达到目的,但随着扩展功能的不断增加,子类的数量会快速膨胀,而装饰模式提供了一种更加灵活的方案。装饰模式GOF对装饰模式的...
2024-01-10设计模式行为型策略模式
一、策略模式基本介绍策略模式(Strategy Pattern)中,定义算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户;这算法体现了几个设计原则。第一、把变化的代码从不变的代码中分离出来;第二、针对接口编程,而不是具体类(定义策略接口);第三、多...
2024-01-10设计模式(5)原型模式
原型模式原型模式的适用场景浅拷贝深拷贝用Initialize方法修改初始化状态原型模式与之前学习的各种工厂方法、单例模式、建造者模式最大、最直观的区别在于,它是从一个既有的对象“克隆”出新的对象,而不是从无到有创建一个全新的对象。与对文件的拷贝类似,原型模式是基于现有的对象...
2024-01-10