![](https://img-blog.csdnimg.cn/20200115104831121.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
设计模式
让你的代码更加简洁而优雅
凉拌海蜇丝
我要一步一步往上爬~
展开
-
外观模式。
设计模式这些,其实就是一种规范,一种优美的约束,所以主观能动性较大,轻轻变化一点点花样,又发明一个新模式,所以除了比较重要的,实际项目中用到的几种常用设计模式外,个人感觉大可不必全部背一遍,因为有的确实非常非常类似,可能你在日常编码优化中不知不觉又使用到了某种名字特别高大上的设计模式,但是你却不知道它有个这么高大上的名词。所谓外观模式,其实就是把一些固定的业务调用逻辑进行封装,减少调用端的使用复杂度,因为业务逻辑这些东西,很多时候我们根本不用自己去绕,只要通过一个接口传参并且获取返回值就行……这个就是所谓原创 2021-07-16 14:37:00 · 144 阅读 · 0 评论 -
策略模式
(1)是什么?策略模式其实很简单,就是针对不同的场景,做出不同的处理策略(2)策略模式的优缺点:优点:(1)可以砍掉代码中过多的if else if 和 switch case语句,使代码更加整洁优雅,一定程度上提高了性能。(2) 新增类型或者场景仅仅需要新增一个处理策略,不需要改动旧代码,遵循了开闭原则,更好维护。缺点:(1)如果场景过多,会产成过多的策略类,一定程度上增加了理解成本(3)怎么用?(案例演示)假设有一个需求,是根据传入的类型Type的不同,构造出不同的对象并且调用相对应的原创 2021-05-21 15:35:38 · 4507 阅读 · 1 评论 -
工厂模式
工厂模式面试时候问到,千万别只会答一种,血的教训,面试官说学一样东西,就方方面面了解清楚,不要只会用一种或者一知半解地使用。常见工厂模式有三种:(1)简单工厂模式(根据类型判断)优点:清晰明了,逻辑简单。缺点:类型多的情况下写N个if else if,硬编码改动大,难维护。(2)工厂方法模式优点:工厂抽象化成接口,作为一种规范作用,具体的手机生产任务分配给所有实现了这个接口的子工厂...原创 2020-03-07 19:42:24 · 136 阅读 · 0 评论 -
Java重排序
之前听公司讲座说到的设计模式,经典的懒汉式单例模式会有重排序问题,当时不是很理解,后来深入学了JVM终于恍然大悟,这里做个总结分享。重排序排序的就是操作指令的顺序,改变了指令的执行顺序。重排序首先要知道字节码.class文件,它就是JavaC编译后的那个字节码文件,它里面有操作指令的执行顺序,程序计数器就是根据字节码的操作指令的顺序进行寻址查找属性和方法进行操作。JVM会自行判断,把速度快的逻辑...原创 2020-02-06 21:47:06 · 917 阅读 · 0 评论 -
Java反射机制(看完详解例子还不懂,留言骂我)
先来一张百度镇楼图看下概念!在运行状态中,对于任意一个类都能知道这个类的全部属性和方法,对于任意一个对象都能调用它的任意属性和方法。听起来既苦涩难懂又牛逼哄哄。举个大家都听得懂的例子:先假设有个场地租给三个商家:(一套系统里有三个类)(1)烤羊肉串的(类的具体的实现),要求自己档位装修得异域风情(属性),有翻滚烧烤架和自动化炭火盆(方法)(2)卖茶叶的(类的具体的实现),要求档位要古...原创 2020-02-04 22:03:00 · 336 阅读 · 0 评论 -
单例模式
单例,就是一个对象在内存中加载初始化和实例化都只有一个,以往我们创建对象都是很随意就写成 XXX xx = new XXX(); 这样每次new一个,就会在堆中新创建一个该XXX对象,这个方法也是语法糖之一,通过默认的构造方法创建对象。如果一个大对象频繁创建销毁回收,会造成资源的浪费,一定程度上加重GC的负担,不利于内存管理。要实现单例模式,我们只需要简单三步骤:(1)默认无参构造方法私有化...原创 2020-02-01 23:34:53 · 172 阅读 · 0 评论 -
Java中的迭代器(模式)最详解(是什么?为什么用?怎么用?)
迭代器是一种设计模式------迭代器模式;Java根据这个设计模式设计的一个对象,就是Iterator迭代器。在Java集合类Collection中有很多复杂的数据结构,比如ArrayList,LinkList ,HashSet 等等;它们的底层实现都各不相同,如果要用for循环遍历,那就要熟悉它们的数据结构是怎样的,获取对应的value的操作方法是什么;或者从它们之中排除某一个特定的值也要先...原创 2020-01-14 16:38:07 · 976 阅读 · 0 评论 -
桥接模式
桥接模式是一种非常简单且非常好用的设计模式,根据网上教程举一个最简单易懂的例子:有大,中,小三种书写字体粗细的钢笔;配上 红,黑, 蓝三种颜色墨水;使用桥接模式只需要定义六个类。(钢笔的)Class Big, Class middle , Class Small ,(墨水的)Class Red , Class Black , Class Blue ;这样我们画图的时候,就可以通过不同书写字...原创 2020-01-05 18:23:53 · 592 阅读 · 0 评论 -
MVC模式详解 + 容易犯的理解误区
1:MVC模式首先不是框架!!(之前我公司新招聘进来的一个前端,刚毕业不久的,可能在学校学过Spring MVC,争论说MVC就是一个Java框架)。2:其次,MVC也不是设计模式!!设计模式是使代码能够高复用的,减少重复搬砖工作的编写代码设计经验的总结;是具体到解决业务问题的(如单例模式,策略模式,桥接模式,观察者模式)。在菜鸟教程网也把MVC放在了设计模式左边那一栏;非常容易让匆忙学习了去面...原创 2020-01-05 13:35:36 · 526 阅读 · 0 评论 -
观察者模式
设计模式是一种优秀的编程思想,能帮助你写出优雅的高质量的代码,所以编程者们学习设计模式也是非常有必要的。曾经我对算法和设计模式这些是不太感冒的,觉得只要自己看懂了,功能实现了又没问题就足够,别人接手觉得改不了那是别人水平问题,后来吃过苦头接手过别人代码才知道,不管前后端都一定要写出优质代码,对自己负责也对别人负责。下面开始正式介绍观察者模式,观察者模式又被称为广播订阅模式,模型视图模式,其实简...原创 2019-12-27 21:04:33 · 203 阅读 · 0 评论