设计模式-组合模式

介绍这篇主要讲述设计模式中的组合模式。组合模式又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。 树形结构在软件中随处可见,例如操作系统中的目录结构、应用软件中的菜单、办公系统中的公司组织结构等等。 接下来看看组合模式的结构图结构图在组合模式结构图中包含如下几个角色:...
阅读(35) 评论(0)

设计模式-备忘录模式

介绍备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。当我们玩单机游戏时就有个存档的功能,这样就是备忘录模式的应用。 备忘录模式提供了一种状态恢复的实现机制,使得用户可以方便地回到一个特定的历史步骤,当新的状态无效或者存在问题时,可以使用暂时存储起来的备忘录将状态复原,当前很多软件都提供了撤销(Undo)操作,其中就使用了备忘录...
阅读(42) 评论(0)

设计模式-迭代器模式

介绍迭代器模式在我们日常编程中使用非常频繁,像list、map、数组等都会用到迭代器模式。迭代器模式属于行为型模式,它用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。结构图在迭代器模式结构图中包含如下几个角色: Iterator(抽象迭代器):它定义了访问和遍历元素的接口,声明了用于遍历数据元素的方法,例如:用于获取第一个元素的first()方法,用于访问下一个元素的next()方法,用于...
阅读(35) 评论(0)

Spring Boot学习之路一:入门

spring boot介绍所谓的介绍也就是spring boot是什么东西?干什么用的?用了之后对我有什么好处?为什么要用这个而不用其他的? spring boot是什么东西? Spring Boot是由Pivotal团队提供的全新框架。 干什么用的? 其设计目的是用来简化新Spring应用的初始搭建以及开发过程。 用了之后对我有什么好处? 简化项目搭建 为什么要用这个而不用其他的?...
阅读(324) 评论(1)

设计模式-命令模式

介绍说到命令模式,我们可以联想到上级下达命令,下级接收命令去执行,遥控器发送命令,相应的机器做出反应。就比如电灯泡的开关,排气扇的开关等等。这些开关就是发送命令的对象,而电灯泡和排气扇就是接受命令的对象,如下图。 命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令...
阅读(56) 评论(0)

设计模式-适配器模式

这篇文章讲的是适配器模式,适配器模式其实在我们日常生活中就有许许多多的例子 例如插座转接头 车载充电器 还有许许多多其他的,我就不一一介绍了。其实设计模式中和真实世界中的适配器的作用都是一样的,都是讲一个结构转换成另一个接口,以达到我们希望的结果。介绍适配器模式(Adapter Pattern## 标题 ##)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了...
阅读(42) 评论(0)

设计模式-桥接模式

介绍桥接模式属于结构型模式,用于把抽象化与实现化解耦,使得二者可以独立变化,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。桥接模式适用于一个系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性,避免在两个层次之间建立静态的继承联系,以及不希望使用继承或因为多层次继承导致系统类的个数急剧增加的系统,或者一个类存在两个独立变化的维度,且这两个维度都需要进行扩展。 就例如各个小吃店的点...
阅读(65) 评论(0)

设计模式-代理模式

代理模式是结构性模式,它通过引入一个新的对象(如小图片和远程代理对象)来实现对真实对象的操作或者将新的对象作为真实对象的一个替身。 我们现实生活中也有许多代理模式的影子。例如朋友出国旅游,我们可以托朋友帮忙买些东西。或者,我们点外卖,配送员替我们去取餐等等。...
阅读(66) 评论(0)

设计模式-中介者模式

在我们的日常生活中经常需要购买各种各样的东西,房子、车子、生活用品等等。那么我们并不会对各个产品都了解,所以销售人员应运而生,他们了解产品,然后他们根据你的需求在向你们推荐符合你们要求的产品。这些销售人员就相当于中介,处于客户和产品之间,为你们搭桥牵线。这就是这篇需要讲述的一个设计模式-中介者模式。介绍从程序方面来讲,中介者模式就是各个对象封装,使他们不需要相互直接引用,而是通过中介者来通信。对于一...
阅读(431) 评论(0)

设计模式-观察者模式

在我们日常生活中,有些人会有订阅报纸的经历,当我们订阅时,都能定时的收到报纸,当我么取消订阅时,就不会再收到报纸。 当然,互联网普及之后,报纸逐渐减少。但是类似的也有许多,例如微信的公众号,当我们订阅了公众号时,公众号有新文章发布时就会推送到我们的微信上。用户3关注公众号 公众号把用户3添加到关注用户列表中,有新文章时推送给关注用户列表中 用户2取消关注,公众号把用户2从关注用户列表中...
阅读(297) 评论(0)

设计模式-装饰模式

介绍装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。 继承机制同样可以给现有类增加功能,通过继承一个现有类可以使得子类在拥有自身方法的同时还拥有父类的方法。但是这种方法是静态的,用户不能控制增加行为的方式和时机。 而装饰器模式是将一个类的对象嵌入另一个对象中,由另一个对象来决定是否调用嵌入对象的行为以便扩展自己的行为。结构图时序图案例我这边就...
阅读(296) 评论(0)

设计模式-状态模式

介绍状态模式和策略模式是一对双胞胎,他们都属于行为设计模式。状态模式和策略模式都是为具有多种可能情形设计的模式,把不同的处理情形抽象为一个相同的接口,符合对扩展开放,对修改封闭的原则。策略模式封装了一组相关算法,它允许Client在运行时使用可互换的行为;状态模式帮助一个类在不同的状态显示不同的行为。状态模式封装了对象的状态,而策略模式封装算法或策略。因为状态是跟对象密切相关的,它不能被重用;而通过...
阅读(226) 评论(0)

设计模式-享元模式

介绍享元模式简单的来说就是把一些重复的抽取出来提供给其他类使用。它使用共享物件,用来尽可能减少内存使用量以及分享资讯给尽可能多的相似物件;它适合用于当大量物件只是重复因而导致无法令人接受的使用大量内存。通常物件中的部分状态是可以分享。常见做法是把它们放在外部数据结构,当需要使用时再将它们传递给享元。 享元模式(Flyweight Pattern)运用共享技术有效地支持大量细粒度对象的复用。系统只使...
阅读(271) 评论(0)

设计模式-原型模式

介绍原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 原型模式多用于创建复杂的或者耗时的实例,因为这种情况下,复制一个已经存在的实例使程序运行更高效;或者创建值相等,只是命名不一样的同类数据。优点 性能提高。 简化对象的创建 注意事项 使用原型模式复制对象不会调用类的构造方法。 有深拷贝与浅拷...
阅读(307) 评论(0)

设计模式-策略模式

介绍在项目开发中,经常会碰到需要根据不同的条件采用不同的算法,但是这些不同的算法又有些类似。例如商城下单中的打折功能(打八折、五折、一折),满减功能等等。 地图中根据采用不同的出行方式计算时间、金额等等,如下图,不同的出行方式使用不同的算法计算需要花费的时间和最短的行驶距离。 结构图那这些不同的行为,我们可以把它们封装成不同的算法,根据用户选择的不同采用不同的算法,这种可以采用策略模式来实现他们...
阅读(1088) 评论(0)
167条 共12页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:306630次
    • 积分:4416
    • 等级:
    • 排名:第7490名
    • 原创:86篇
    • 转载:81篇
    • 译文:0篇
    • 评论:36条
    博客专栏