![](https://img-blog.csdnimg.cn/5f72fcfffefb456481ee083aa0a79f21.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java设计模式
文章平均质量分 66
Java设计模式札记
CSNZのBlog
深圳职业技术大学 19届软件技术专业
展开
-
23种设计模式之行为型模式:备忘录模式
一:什么是备忘录模式备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。二:进一步了解备忘录模式目的:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。主要解决:所谓备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。何时使用:很多时候我们总是需要记录一个对象的内部状态,这样做的目的就是为了允许用户取消不确定或者错误的操原创 2021-09-03 08:53:28 · 107 阅读 · 0 评论 -
23种设计模式之行为型模式:中介者模式
一:什么是中介者模式中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。中介者模式属于行为型模式。二:进一步了解中介者模式目的:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用主要解决:对象与对象之间存在大量的关联关系,这样势必会导致系统的结构变得很复杂何时使用:多个类相互耦合,形成了网状结构。如何解决:将上述网状结构分离为星型结构。关键代原创 2021-09-02 13:50:27 · 83 阅读 · 0 评论 -
23种设计模式之行为型模式:观察者模式
一:什么是观察者模式当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知依赖它的对象。观察者模式属于行为型模式。二:进一步了解观察者模式目的:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。主要解决:一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。何时使用:一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知,进行原创 2021-09-02 13:16:38 · 102 阅读 · 0 评论 -
23种设计模式之行为型模式:迭代器模式
一:什么是迭代器模式迭代器模式(Iterator Pattern)是 Java 和 .Net 编程环境中非常常用的设计模式。这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。迭代器模式属于行为型模式。二:进一步了解迭代器模式目的:提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。何时使用:遍历一个聚合对象。如何解决:把在元素之间游走的责任交给迭代器,而不是聚合对象。关键代码:定义接口:hasNext, next。应用实例:JAVA 中的原创 2021-08-28 15:02:53 · 82 阅读 · 0 评论 -
23种设计模式之行为型模式:命令模式
一:什么是命令模式?命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。...原创 2021-08-27 10:24:25 · 128 阅读 · 0 评论 -
23种设计模式之行为型模式:模板方法模式
一:什么是模板方法模式在模板模式(Template Pattern)中,抽象类公开定义了执行它的方法的方式/模板。子类可以按需重写方法实现,但调用将以抽象类中定义的公开方法进行。这种类型的设计模式属于行为型模式。二:进一步了解模板方法模式目的:(抽象类中)定义一个操作骨架(方法),将一些步骤延迟到子类中(实现重写)。模板方法使得子类可以不改变父类中的方法结构 即可重定义该算法的某些特定步骤(就是重写)。主要解决:一些方法通用,却在每一个子类都重新写了这一方法。何时使用:有一些通用的方法。原创 2021-08-26 10:15:15 · 135 阅读 · 0 评论 -
23种设计模式之结构型模式:享元模式
一:什么是享元模式享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。享元模式尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象。我们将通过创建 5 个对象来画出 20 个分布于不同位置的圆来演示这种模式。由于只有 5 种可用的颜色,所以 color 属性被用来检查现有的 Circle 对象。二:进一步了解享元模式三:实现:...原创 2021-08-25 16:06:47 · 148 阅读 · 0 评论 -
23种设计模式之结构型模式:外观模式
一:什么是外观模式外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。...原创 2021-08-24 20:38:14 · 69 阅读 · 0 评论 -
23种设计模式之结构型模式:组合模式
一:什么是组合模式?组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。这种模式创建了一个包含自己对象组的类。该类提供了修改相同对象组的方式。...原创 2021-08-24 10:56:10 · 104 阅读 · 0 评论 -
23种设计模式之结构型模式:装饰器模式
一:什么是装饰器模式装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。二:进一步了解装饰器模式目的:动态地给一个对象添加一些额外的职责。就增加功能来说,装饰器模式相比生成子类更为灵活。主要解决:一般的,我们为了扩展一个类经常使用继承方式实现,由于继承为类引入静态特征,并且随着扩展功能的增多,子类会很膨胀。何时使用:在不想增加很多子类的情况下扩展类。如何解决:将具体功能职责划分,同时原创 2021-08-23 14:37:37 · 118 阅读 · 2 评论 -
23种设计模式之结构型模式:桥接模式
一:什么是桥接模式?桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。二:进一步深入了解桥接模式目的:将抽象部分与实现部分分离,使它们都可以独立的变化。主要解决:在有多种可能会变化的情况下,用继承会造成类爆炸问题,扩展起来不灵活。何时使用:实现系统可能有多个角度分类,每一种角度都可能变化。如何解决:把这种多角度分类分原创 2021-08-22 12:56:51 · 123 阅读 · 0 评论 -
23种设计模式之结构型模式:适配器模式
一:什么是适配器模式?适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。二:进一步了解适配器模式意图:将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。主要解决:主要解决在软件系统中,常常要将一些"现存的对象"放到新原创 2021-08-21 21:58:51 · 98 阅读 · 0 评论 -
23种设计模式之创建型模式:原型模式
一:什么是原型模式?原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。二:进一步了解原型模式目的:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。主要解决:在运行期建立和删除原型。何时使用: 当要实例化的类是在运行时刻指定时,例如,通过动态装载。如何解决:利用已有的一个原型原创 2021-08-21 17:17:18 · 92 阅读 · 0 评论 -
23种设计模式之创建型模式:建造者模式
一:什么是建造者模式?建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。二:进一步了解建造者模式目的:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。主要解决:由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却相对稳定。何时使用:一些基本部原创 2021-08-21 11:04:39 · 104 阅读 · 0 评论 -
23种设计模式之创建型模式:抽象工厂模式
一:什么是抽象工厂模式抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。二:进一步了解抽象工厂模式意图:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。主要解决:主要解决接口选择的问题。何时使用:系统的产品有多于一个的产原创 2021-08-20 15:59:59 · 136 阅读 · 0 评论 -
23种设计模式之创建型模式:工厂模式
一:什么是工厂模式工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象二:进一步了解工厂模式意图:定义一个创建对象(Car)的接口,让其子类(宝马、捷豹等)自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。主要解决:主要解决接口选择的问题。何时使用:我们明确地计划不同条件下创建不同实例时。原创 2021-08-20 10:41:08 · 92 阅读 · 0 评论 -
23种设计模式之创建型模式:单例模式
问题一:单例模式是什么?问题二:为什么要单例模式,单例模式解决了什么问题?问题三:什么情况下需要使用单例模式?对于开头三联问,你是否能答得出来?单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象注意:1、单例类只能有一个实例。2、单例类原创 2021-08-19 14:48:08 · 161 阅读 · 0 评论 -
23种设计模式概述
设计模式常用的七大原则有:1、单一职责原则2、接口隔离原则3、依赖倒转原则4、里氏替换原则5、开闭原则 OCP6、迪米特法则7、合成复用原则原创 2021-08-19 11:45:12 · 270 阅读 · 0 评论 -
23种设计模式之结构型模式:代理模式
代理模式的好处:可以使真实角色的操作更加纯粹!不用去关注一些公共的业务。公共的事情 就交给代理角色 完成,实现了业务的分工。公共业务发生拓展的时候,方便集中管理。代理模式的缺点:一个真实角色就会产生一个代理角色,代码量会翻倍,开发效率降低代理模式的分类一、静态代理二、动态代理动态代理和静态代理角色一样动态代理的代理类是动态生成的,不是直接写好的动态代理分为两大类:基于接口的动态代理,基于类的动态代理基于接口 —— JDK动态代理基于类 —— cglibjava字节码实现原创 2021-07-24 10:46:48 · 209 阅读 · 0 评论