
——【设计模式】
卡夫卡的熊kfk
总之岁月漫长,然而值得等待
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【设计模式】六大原则
所谓“无规矩,不成方圆”,那就在全面学习设计模式时,先涉及个原则。 单一职责原则 开放-封闭原则 依赖倒转原则 迪米特法则原创 2017-05-10 17:39:03 · 762 阅读 · 10 评论 -
【设计模式】让设计模式连接生活
所谓“编程即生活”,只有把知识更好地与现实生活和主观感受结合在一起,我们才能更好地掌握知识。所以今天小编就总结了些设计模式的典型用例,以飨读者。 这是整个的设计模式的思维导图,其中依个人理解做了分类: 创建型: 模式名称 关键字 典型用例 备注 简单工厂 分类 计算器 提取 “加原创 2017-05-21 10:56:10 · 568 阅读 · 8 评论 -
趣谈java单例模式
什么是单例模式 确保一个类最多只有一个实例,并提供一个全局访问点。就像你是你们家的独生子,一旦邻居跟你爸告状说“你家孩子打架了”,说的只可能是你。 单例模式有两种创建方式:懒汉式和饿汉式。在下文会对其进行详细解说。 使用场景和优缺点 使用场景 (1)网站计数器。当需要统计当前在线人数,只能用一个全局对象来记录。 (2)应用程序的日志。日志内容一般为共享操作,需要在后面不断写入内容,所以需要单例模...原创 2019-06-23 10:39:23 · 929 阅读 · 5 评论 -
趣谈java工厂模式
概念 工厂模式是用工厂方法代替new操作的一种模式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。工厂模式分为3种:简单工厂模式、工厂方法模式、抽象工厂模式。 就像大白兔工厂是生成大白兔奶糖的,java工厂生产的是对象。 适用场景和优缺点 适用场景 (1)在编码时不能预见需要创建哪种类的实例。 (2)系统不应依赖于产品类实例如何被创建、组...原创 2019-07-23 16:33:08 · 415 阅读 · 0 评论 -
趣谈java设计模式—综述
终于把设计模式总结完啦~这次一共总结了6个常用的设计模式,总结完后收获颇丰。 本系列博客目录 趣谈java单例模式 趣谈java策略模式 趣谈java观察者模式 趣谈java适配器模式 趣谈java代理模式 趣谈java工厂模式 学习体会 (1)学习是一个螺旋上升的过程,每一份坚持都不会白费。2年前学C#语言的时候,曾经接触过设计模式,当时看完是一脸懵。现在再来看设计模式,感受到的是大牛思想的巧妙...原创 2019-07-23 16:53:02 · 705 阅读 · 0 评论 -
趣谈java策略模式
什么是策略模式 对象有某个行为,但是在不同的场景中,该行为有不同的实现算法。 比如“三只松鼠”的官方旗舰店,有“优惠”的行为,但是有好几种优惠选择:满两件打7折,满199-100等。这些优惠选择就是实现了不同的算法。 又比如说,对两个数进行操作,可以有“加减乘除”四种不同的实现。 使用场景和优缺点 使用场景 (1)当一个系统中有许多类,它们之间的区别仅在于它们的行为,希望动态地让一个对象在许多行...原创 2019-07-23 09:35:06 · 713 阅读 · 1 评论 -
趣谈java观察者模式
概念 观察者模式又叫发布-订阅模式,当一个对象变化时,其它依赖该对象的对象都会收到通知,并且随着变化。对象之间是一种一对多的关系。 就像如果你订阅了“人民日报”,那每当此报纸出新版时,邮局的工作人员就会送一份到你的家里。此时,你就是“观察者”,观察的是“报纸”的动态。 使用场景和优缺点 使用场景: (1)当一个对象的改变需要改变其它对象,而且它不知道具体有多少个对象有待改变时。 (2)一个抽象模...原创 2019-07-23 10:15:17 · 346 阅读 · 0 评论 -
趣谈java适配器模式
概念 适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题。主要有如下3类的适配器模式:类、对象、接口。 充电器的头就相当于一个适配器,它适配了手机充电线和插座。 适用场景和优缺点 适用场景: 有动机地修改一个正常运行的系统接口 优点: (1)可以让任何两个没有关联的类一起运行 (2)提高了类的复用 (3)增加了类的透明度 (4)灵活性好 缺点...原创 2019-07-23 10:54:57 · 350 阅读 · 0 评论 -
趣谈java代理模式
概念 代理模式:为一个对象提供一种代理,以控制对这个对象的访问。分为静态代理和动态代理。 比如我家张艺兴的经纪人就是他的“代理”。 适用场景和优缺点 适用场景 (1)当我们想要隐藏某个类时,可以为其提供代理类 (2)当一个类需要对不同的调用者提供不同的调用权限时,可以使用代理类来实现 (3)当我们要扩展某个类的某个功能时,可以使用代理模式,在代理类中进行简单扩展 (4)spring的aop就是使...原创 2019-07-23 15:14:26 · 373 阅读 · 1 评论 -
【设计模式】行为型模式(下)
行为型模式思维导图: 备忘录模式(Memento) 是什么? 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。 结构图? 使用场景? 系统有需要提供回滚操作的需求,比如jdbc的事务操作,文本编辑器的ctrl+z恢复等 优缺点? 优:①当发起人角色中的状态改变时,有可能这是个错误的改变,我们使用备原创 2017-05-20 21:14:57 · 514 阅读 · 10 评论 -
【设计模式】行为型模式(上)
行为型模式涉及到算法和对象间职责的分配,描述了对象和类的模式,以及它们之间的通信模式。 访问者模式(Visitor) 是什么? 表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 结构图? 使用场景? ①一个对象中存在着一些与本对象不相干(或关系较弱)的操作,为了避免这些操作污染这个对象,则可以使用访问者模式来把这原创 2017-05-20 17:14:37 · 594 阅读 · 10 评论 -
【设计模式】工厂三姐妹
一说起设计模式,“工厂三姐妹”就能浮上心头。那就先把她们总结一下吧。 简单工厂模式(Simple Factory Pattern) 【定义】 通过专门定义一个类来负责创建其他类的实例 【场景】 要写一个Windows计算器,可以将“加减乘除”等合并为一个“运算类”,然后再让这个类实例化(用类创建对象的过程叫做实例化)。和标题联系,这个“运算类”就是工厂,它可以生产出“加减乘除”等产品原创 2017-05-13 21:50:44 · 819 阅读 · 10 评论 -
【面向对象】三大特性——封装、继承、多态
封装、继承、多态原创 2017-05-14 11:28:43 · 623 阅读 · 6 评论 -
【面向对象】三重定义——重构、重写、重载
重构(Refactoring) 【定义】 在原始代码的基础上通过一定的方法,比如添加设计模式,封装类等手段,使软件的性能得到提升,从而提高软件的维护性和拓展性。 【关键代码】 //父类 class Animal { ...... public string Shout() { string resu原创 2017-05-14 15:00:38 · 1067 阅读 · 8 评论 -
【面向对象】这些基本概念,你都了解了吗(上)
一张图胜过千言万语,所以先来张思维导图把面向对象基础知识梳理一下: 本篇中涉及了类与对象、构造方法、属性与修饰符、委托与事件。其余部分,敬请期待下篇博客 类与对象 【类】 具有相同属性和功能的对象的抽象的集合。 (1)类名称首字母要大写,多个单词则每个首字母大写 (2)对外公开的方法需要用“public”修饰符 【对象】 所有的东西都是对象 【关系】 (1)利用原创 2017-05-14 21:12:13 · 811 阅读 · 7 评论 -
【面向对象】这些基本概念,你都了解了吗(下)
零碎知识点杂乱,所以先放个思维导图当向导: 抽象类与接口 抽象类 【定义】 类按用途可分为两类,一类是用来描述对象的,另一类就是抽象类。关键字是abstract。 【特点】 (1)抽象类不能实例化 (2)抽象方法是必须被子类重写的方法 (3)如果类中包含抽象方法,那么类就必须定义为抽象类 【什么时候用】 当设计一个新的抽象类时,一定是用来继承的。在一个以原创 2017-05-14 21:13:03 · 740 阅读 · 10 评论 -
【设计模式】创建型模式
最近有些接受李笑来的“只理解基本概念”,那就试试。 设计模式可分为三大类:创建型(对象的创建过程)、结构型(类或对象的组合)、行为型(类和对象交互及分配职责的方式)。今天先谈谈创建型。对设计模式的分类方法千千万,那既然是从基本概念入手,那就先“站在巨人的肩膀”上,先按此思路走一遍。 “工厂三姐妹” 对“简单工厂,工厂方法,抽象工厂”这三姐妹的描述在此篇博客中有详细叙述,在此不再赘述:原创 2017-05-17 22:05:58 · 461 阅读 · 6 评论 -
【设计模式】结构型模式(上)
构建型原创 2017-05-18 18:09:47 · 401 阅读 · 6 评论 -
【设计模式】结构型模式(下)
组合模式(Composite) 是什么? 将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。现在举一个典型例子:组合模式能实现的功能就像word里的文字,不管是对单个字还是整段字的处理,都是一样的。 结构图? 使用场景? 需求中是体现部分与整体层次的结构时,且用户希望能忽略组合对象与单个对象的不同,统一地使用组合结构中的所有原创 2017-05-19 21:57:22 · 412 阅读 · 6 评论 -
【java反射】简单说说静态代理和动态代理
在上篇博客中,我们说了反射的原理和简单应用,这次我们说说反射更深一层的应用,即动态代理。 代理模式 定义 代理模式是为其他对象提供一种代理以控制对这个对象的访问。代理模式分为静态代理和动态代理。 原理 使用一个代理将对象包装起来,然后用该代理对象取代原始对象,任何对原始对象的调用都要通过代理。代理对象决定是否以及何时将方法调用转到原始对象上。 就像如果你们公司想找张艺兴当代言人,需要先联系他的助理...原创 2019-01-17 17:06:16 · 1874 阅读 · 4 评论