![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
EmineWang
计算机专业,资深java开发工程师,从事后端开发、架构方向,热爱技术,热爱分享,愿对你有所帮助,感恩大家的支持,欢迎来信交流~~
展开
-
【设计模式】命令模式
命令模式将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。命令模式通过这种封装的方式实现将客户端和接收端解耦。命令模式的几个角色:抽象命令接口Command:定义命令的接口,声明执行的方法具体命令实现,持有接受者对象,完成具体命令命令接受者对象Receiver:真正执行命令的角色命了传递者Invoker:持有命令对象,要求命令对象执行请...原创 2019-11-12 20:18:00 · 162 阅读 · 0 评论 -
【设计模式】建造者模式
建造者模式:建造者模式能够将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。比如制造一个手机,都有统一组件标准,都包含屏幕、电池、机身,可以将制作部件过程进行抽象出来,具体实现交给具体产品。定义手机属性@Data@ToStringpublic class MobilePhone { // 手机屏幕 private String screen;...原创 2019-11-12 19:47:56 · 146 阅读 · 0 评论 -
常用设计模式对比
23种设计模式:分类设计模式创建型工厂方法模式(Factory Method)、抽象工厂模式(Abstract Factory)、 建造者模式(Builder)、原型模式(Prototype)、单例模式(Singleton)结构型适配器模式(Adapter)、桥接模式(Bridge)、组合模式(Composite)、 装饰器模式(Decorator)、门面模式(Fa...原创 2019-11-12 18:03:15 · 196 阅读 · 0 评论 -
【设计模式】观察者模式
观察者模式:观察者模式(Observer Pattern)定义了对象之间的一对多依赖,让多个观察者对象同 时监听一个主体对象,当主体对象发生变化时,它的所有依赖者(观察者)都会收到通 知并更新,属于行为型模式。观察者模式有时也叫做发布订阅模式。观察者模式主要用 于在关联行为之间建立一套触发机制的场景。观察者模式在现实生活应用也非常广泛, 比如:微信朋友圈动态通知结合案例,学生在教育系统提...原创 2019-11-12 17:49:34 · 877 阅读 · 0 评论 -
【设计模式】装饰者模式
装饰者模式装饰者模式(Decorator Pattern)是指在不改变原有对象的基础之上,将功能附加到对 象上,提供了比继承更有弹性的替代方案(扩展原有对象的功能),属于结构型模式例如,平时买煎饼,普通煎饼,可以加鸡蛋,加香肠定义食物顶层接口public interface Food { String make();}定义一个基本煎饼,无添加publi...原创 2019-11-12 17:09:55 · 111 阅读 · 0 评论 -
【设计模式】适配器模式
适配器模式的应用场景适配器模式(Adapter Pattern)是指将一个类的接口转换成客户期望的另一个接口,使 原本的接口不兼容的类可以一起工作,属于结构型设计模式适配器适用于以下几种业务场景:1、已经存在的类,它的方法和需求不匹配(方法结果相同或相似)的情况。2、适配器模式不是软件设计阶段考虑的设计模式,是随着软件维护,由于不同产品、不 同厂家造成功能类似而接口不相同情况下的解决方案。...原创 2019-11-12 16:43:46 · 181 阅读 · 0 评论 -
【设计模式】模板模式
模板模式通常又叫模板方法模式,是指定义一个算法的骨架,并允许子类为一个或者多个步骤提供实现。模板方法使得子类为一个或者多个步骤提供实现。模板方法使得子类可以再不改变算法结构的情况下,重新定义算法的某些步骤,属于行为性设计模式。模板方法适用于一下应用场景:1、一次性实现一个算法的不变的部分,并将可变的部分留给子类类实现。2、各子类中公共的行为被提取出来并集中到一个公共的父类中,从而避免代码重复。...原创 2019-11-12 16:16:10 · 149 阅读 · 0 评论 -
【设计模式】策略模式
策略模式(Strategy Pattern)是指定义了算法家族、分别封装起来,让它们之间可以互 相替换,此模式让算法的变化不会影响到使用算法的用户。策略模式的应用场景1、假如系统中有很多类,而他们的区别仅仅在于他们的行为不同2、一个系统需要动态地在几种算法中选择一种。例如,平时在支付过程中可以使用支付宝,也可以使用微信支付。创建支付策略接口public inte...原创 2019-11-12 15:44:48 · 168 阅读 · 0 评论 -
【设计模式】委派模式
委派模式不属于 GOF23 种设计模式中。委派模式的作用是负责任务的调用和分配任务,跟代理模式很像,可以看做是一种特殊情况下的静态代理的全权受理,但是代理模式注重的是过程,委派模式注重的是结果。委派模式在spring中应用的非常多,大家常用的DispatcherServlet其实就是用到了委派模式。现实生活中也常有委 派的场景发生,例如:老板(Boss)给项目经理(Leader)下达任务,项...原创 2019-11-12 14:47:30 · 151 阅读 · 0 评论 -
【设计模式】单例模式
饿汉模式 ,不管用不用,都初始化public class HungrySingleton { private static final HungrySingleton HungrySingleton = new HungrySingleton(); public static HungrySingleton getInstance(){ return Hu...原创 2019-11-11 18:03:04 · 165 阅读 · 1 评论 -
静态代理和动态代理
Proxy代理模式是一种结构型设计模式,主要解决的问题是:在直接访问对象时带来的问题。代理对象持有真是对象的引用,通过代理对象去调用真实对象方法,于此同时可以在代理对象增加自己的处理,如监控、日志打印等操作。代理模式有三个角色:抽象角色:即一个接口,里面具体写了要执行的方法代理角色: 用来操作真实对象真实角色:真实的对象实现原理:代理对象和真实对象共同实现一个抽象角色的接口...原创 2019-03-03 17:33:18 · 4202 阅读 · 1 评论 -
【设计模式】抽象工厂模式
在介绍抽象工厂模式前,先了解产品族和产品等级。产品等级结构:产品等级结构即产品的继承结构,如一个抽象类是电视机,其子类有海尔电视机、海信电视机、TCL电视机,则抽象电视机与具体品牌的电视机之间构成了一个产品等级结构,抽象电视机是父类,而具体品牌的电视机是其子类。即不能品牌的产品构成了一个产品等级产品族:在抽象工厂模式中,产品族是指由同一个工厂生产的,位于不同产品等级结构中的一组产品,如...原创 2019-11-07 17:13:42 · 248 阅读 · 0 评论 -
【设计模式】工厂方法模式
在上一篇中介绍了简单工厂模式,但是缺点是不符合开闭原则。这里介绍另工厂方法模式工厂方法模式: 定义一个的接口,但让实现这个接口的类来决定实例化哪个类上一篇中的简单工厂模式中,Dog和Cat都是由同一个工厂生产的,现在将狗和猫拆开,分别生产。申明dog和cat的实体public interface IAnimal { void eat();}public class Dog...原创 2019-11-07 16:01:20 · 139 阅读 · 0 评论 -
【设计模式】简单工厂模式
如现在有两个动物,一个狗Dog,一个猫Cat,都有一个动作“”吃饭“”简单的写法就是public static void main(String[] args){ Dog dog = new Dog(); dog.eat(); Cat cat = new Cat(); cat.eat();}这里可以发现,main应用层就依赖了低层的Dog代码,如果要增加一个动物,那么应用层就会变...原创 2019-11-07 15:16:47 · 212 阅读 · 0 评论 -
七大设计原则
1、开闭原则 : 修改关闭,扩展开放2、单一职责原则 : 不要存在多个倒置类变更的原因,一个接口只负责一项职责3、接口隔离原则 : 一个类对另一个类的依赖建立在最小接口之上,接口避免臃肿,方法尽量少4、迪米特法则 : 最少知道原则,一个对象对其他对象保持最少的了解,不关心接口具体实现5、依赖倒置原则 : 模块之间的依赖通过接口或抽象类来实现,接口或抽象类不依赖实现类,实现类依赖于接...原创 2019-11-01 17:51:09 · 175 阅读 · 0 评论