设计模式
1、说下你知道的设计模式有哪些?下面 3 种类型中各挑几个常见的或者你用过的说就可以了。2、工厂方法模式和抽象工厂模式有什么区别?工厂方法模式:一个抽象产品类,可以派生出多个具体产品类。 一个抽象工厂类,可以派生出多个具体工厂类。每个具体工厂类只能创建一个具体产品类的实...
2024-01-10设计模式简介
设计模式简介设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。设计模式是一套被反复使用的、多...
2024-01-10设计模式总结
经过了两个多月的时间,终于,将常见的设计模式结合例子过了一遍,在此做一个简单的小结。设计模式小结不难发现,应用各种设计模式所带来的好处,都会提到解耦二字。开闭原则要求我们的系统对扩展开放,对修改关闭。高内聚,低耦合的系统,有更高的稳定性与灵活性,也更易于维护。如何...
2024-01-10设计模式详解
设计模式是什么设计模式是一个通过定义、使用、测试去解决特定问题的方法,是针对软件设计中在给定条件下会重复性发生的问题而提出的一种通用性的可重用解决方案,设计模式不是可以直接转化为代码的完整设计,它是用于描述在不同情况下解决问题的通用方案。设计模式的作用设计模式通过...
2024-01-10CSS设计模式
什么是设计模式?曾有人调侃,设计模式是工程师用于跟别人显摆的,显得高大上;也曾有人这么说,不是设计模式没用,是你还没有到能懂它,会用它的时候。先来看一下比较官方的解释:“设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。使...
2024-01-10设计模式状态模式
模式结构上下文(context):状态运行的环境抽象状态(State)角色:对状态类型的抽象具体状态(Concrete State)角色:状态类型的实现源码导读在复杂的业务场景中,我们一般使用状态机来实现状态的切换。状态机便是基于状态模式的思想设计。下面我们介绍spring组件中的状态机组件 spring statemach...
2024-01-10设计模式策略模式
抽象折扣类:public interface MemberStrategy { /** * 计算图书的价格 * @param booksPrice 图书的原价 * @return 计算出打折后的价格 */ public double calcPrice(double booksPrice);} 三个实现类:(初级会员、中级会员、高级会员) public class PrimaryMemberStrategy implements MemberStra...
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管道设计模式的实现
这是关于管道实施的设计问题。以下是我的幼稚实现。管道中各个步骤/阶段的接口:public interface Step<T, U> { public U execute(T input);}管道中的步骤/阶段的具体实现:public class StepOne implements Step<Integer, Integer> { @Override public Integer execute(Integer input) { return input + 100; ...
2024-01-10什么设计模式更好?
当用2个对象作为参数编写函数时,比如比较函数或向量sum,什么设计模式更好?什么设计模式更好?1)将函数写入对象类中,只取得第二个对象。2)用一个静态函数写一个外部类,它将得到两个对象。为什么和什么时候?回答:在Java中,你有Comparable.compareTo(o1)是代表一个对象的执行,并采取第...
2024-01-10设计模式学习代理模式
代理模式主要分为三种,静态代理、动态代理、Cglib代理一、静态代理静态代理的条件是目标类与代理类必须实现同一个接口然后通过调用相同的函数完成对目标函数的调用 ,业务操作由目标类实现,非业务操作由代理类实现1.接口public interface Test { void test();}2.目标类public class TestImpl implements T...
2024-01-10设计模式系列原型模式
适用场景:1、类初始化消耗资源较多2、new 产生的一个对象需要非常繁琐的过程(数据准备、访问权限等)3、构造函数比较复杂原型模式创建方式分为两种:浅克隆 ,深克隆实现方式1、浅克隆克隆出的新对象的引用属性内存地址还是指向原实例属性地址。即新对象与原对象引用属性共用同一内...
2024-01-10设计模式系列委派模式
定义委派模式就是负责任务的调用和分配,跟 设计模式系列--代理模式很像,可以看作是一种特殊情况下的静态代理的全权代理,但是代理模式注重过程,而委派模式注重结果。实现方式一般在公司,老板有什么想法,首先是和他手下的管理人员沟通,管理人员将老板的想法落实后,将任务拆解派发...
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设计模式结构型组合模式
一、组合模式基本介绍组合模式(Composite Pattern),又叫部分整体模式,它创建了对象组的树形结构,将对象组合成树状结构,以表示“整体部分”的关系。组合模式依据树形结构来组合对象,用来表示部分以及整体层次;这种设计模式属于结构性模式;组合模式使得用户对单个对象和组合对象的...
2024-01-10设计模式结构型享元模式
一、享元模式基本介绍享元(Flyweight)模式也叫做蝇量模式,运用共享技术有效地支持大量细粒度的对象;常用于系统底层开发,解决系统性能问题,像数据库连接池,里面都有创建好的连接对象,在这些对象中,有我们需要的就直接拿来用,避开重新创建,如果没有我们需要的,则创建一个;享...
2024-01-10设计模式(8)组合模式
组合模式透明模式与安全模式对组合的筛选遍历无论是在生活中还是项目中,我们经常会遇到具有“部分-整体”概念的对象,比如员工与团队的关系,这就类似树形结构,可能具有很多的嵌套层次和分支,把这种复杂性直接暴露给调用端是不合适的。组合模式借助组合模式,可以将这类具有“部...
2024-01-10设计模式一一一策略模式
jdk中的观察者模式: Observer 观察者 说明:观察(监听)着感兴趣的对象,通过将自身注册到感兴趣的对象中,并且由感兴趣的对象发通知来实现观察(监听)的效果。收到通知后,根据通知的内容做相应的处理。 Observable 被观察者 说明:维护者对自身感兴趣的观察...
2024-01-10设计模式一一一装饰模式
目的:对对象的相应功能进行增强。 应用:对提供基础功能的类进行个性化增强。 两大要素: 1,被装饰的类封装于装饰实现类的内部,从而形成对象之间的引用关系。 2,装饰实现类同样实现了原始接口(原始接口即:被装饰类实现的接口) ...
2024-01-10设计模式结构型外观模式
一、外观模式简单介绍外观模式就是解决多个复杂接口带来使用困难,起到简化用户操作的作用。二、外观模式组成部分外观类(Facade):为调用端提供统一的调用接口,外观类知道那些类负责处理请求,从而将调用端的请求代理给适当子系统处理;调用者(Client):外观接口的调用者;子系统集...
2024-01-10设计模式(11)享元模式
基于面向对象思想设计的应用程序有时遇到需要场景大量相同或显示对象实例的场景,这些数量庞大的实例很可能会消耗很多系统资源,最直接的就是内存了。比如要一款围棋游戏,如果每次落子都新建一个对象,将会占用大量内存,而实际上棋子只有黑白两色,不同的只是落子位置而已。另外,大量...
2024-01-10设计模式创建型创建者模式
一、创建者模式的四个角色Product(产品):一个具体的产品对象;Builder(抽象创建者):创建一个Product对象的各个部件的制定接口/抽象类;ConcreteBuilder(具体创建者):实现接口,构建和装配各个部件;Director(指挥者):构建一个使用Builder接口的对象,他主要用于构建一个复杂的对象,它主要...
2024-01-10