![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 95
23种设计模式及7大设计原则
Bummon.
专注于Java开发,热爱技术的00后程序员
展开
-
【设计模式】第二十二章:中介者模式详解及应用案例
用一个中介对象来封装一系列对象的交互,从而把一批原来可能是交互关系复杂的对象转换成一组松散耦合的中间对象,以有利于维护和修改。原创 2023-07-05 14:25:20 · 564 阅读 · 0 评论 -
【设计模式】第二十一章:命令模式详解及应用案例
在软件系统中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合但在某些场合,比如要对行为进行“记录、撤销/重做、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将“行为请求者”与“行为实现者”解耦?将一组行为抽象为对象实现二者之间的松耦合。这就是命令模式(Command Pattern)。原创 2023-07-05 14:25:22 · 1178 阅读 · 0 评论 -
【设计模式】第二十章:解释器模式详解及应用案例
*摘自百度百科:**定义了一个解释器,来解释给定语言和文法的句子。其实质是把语言中的每个符号定义成一个(对象)类,从而把每个程序转换成一个具体的对象树。原创 2023-07-05 14:20:51 · 421 阅读 · 0 评论 -
【设计模式】第十九章:访问者模式详解及应用案例
表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作。原创 2023-07-05 14:21:02 · 713 阅读 · 0 评论 -
【设计模式】第十八章:备忘录模式详解及应用案例
在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。原创 2023-07-05 14:15:20 · 484 阅读 · 0 评论 -
【设计模式】第十七章:状态模式详解及应用案例
允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。原创 2023-07-05 14:13:15 · 1098 阅读 · 0 评论 -
【设计模式】第十六章:迭代器模式详解及应用案例
提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示。原创 2023-07-05 14:36:20 · 737 阅读 · 0 评论 -
【设计模式】第十五章:责任链模式详解及应用案例
在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任。原创 2023-07-04 10:24:07 · 434 阅读 · 0 评论 -
【设计模式】第十四章:策略模式详解及应用案例
在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。原创 2023-07-04 10:21:57 · 551 阅读 · 0 评论 -
【设计模式】第十三章:模板方法模式详解及应用案例
模板方法模式定义了一个算法的步骤,并允许子类别为一个或多个步骤提供其实践方式。让子类别在不改变算法架构的情况下,重新定义算法中的某些步骤。原创 2023-07-04 10:18:56 · 358 阅读 · 0 评论 -
【设计模式】第十二章:观察者模式详解及应用案例
观察者模式(有时又被称为模型(Model)-视图(View)模式、源-收听者(Listener)模式或从属者模式)是如那件设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实现事件处理系统。原创 2023-07-04 09:49:24 · 526 阅读 · 0 评论 -
【设计模式】第六章:装饰器模式详解及应用案例
摘自菜鸟教程:装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。原创 2023-07-04 09:22:45 · 452 阅读 · 0 评论 -
【设计模式】第七章:代理模式详解及应用案例
所谓的代理者是指一个类别可以作为其它东西的接口。代理者可以作任何东西的接口:网上连接、存储器中的大对象、文件或其它昂贵或无法复制的资源。原创 2023-07-04 09:27:46 · 545 阅读 · 0 评论 -
【设计模式】第八章:桥接模式详解及应用案例
桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为 柄体(Handle and Body)模式 或 接口(interface)模式。原创 2023-07-04 09:32:36 · 259 阅读 · 0 评论 -
【设计模式】第九章:外观模式(门面模式)详解及应用案例
是指提供一个统一的接口去访问多个子系统的多个不同的接口,它为子系统中的一组接口提供一个统一的高层接口。使得子系统更容易使用。原创 2023-07-04 09:38:01 · 309 阅读 · 0 评论 -
【设计模式】第十章:组合模式详解及应用案例
组合模式,将对象组合成树形结构以表示“部分-整体”的层次结构。原创 2023-07-04 09:41:09 · 350 阅读 · 0 评论 -
【设计模式】第十一章:享元模式详解及应用案例
它使用共享物件,用来尽可能减少内存使用量以及分享资讯给尽可能多的相似物件;它适合用于只是因重复而导致使用无法令人接受的大量内存的大量物件。通常物件中的部分状态是可以分享。常见做法是把它们放在外部数据结构,当需要使用时再将它们传递给享元。原创 2023-07-04 09:45:47 · 369 阅读 · 0 评论 -
【设计模式】第四章:原型模式详解及应用案例
摘自百度百科:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原创 2023-06-13 16:50:10 · 418 阅读 · 0 评论 -
【设计模式】第五章:适配器模式详解及应用案例
摘自百度百科:在计算机编程中,适配器模式(有时候也称包装样式或者包装)将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。假如我们已经定义了一个方法,后续由于各种场景要求我们改造该方法,但是又不能影响到其他调用到这个方法的代码,这时候我们就可以使用适配器模式来进行包装,以符合我们的业务需求。适配器模式适用于在不修改原有代码结构的情况下,完成扩展功能的需求。我们可以根据业务场景的不同来选择适配器模式不同的实现方式。原创 2023-05-24 09:53:11 · 344 阅读 · 0 评论 -
【设计模式】第三章:建造者模式详解及应用案例
建造者模式是设计模式的一种,将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式是将一个复杂对象的构建与其分离开,使之可以通过同样构建过程来创建不同的内容。原创 2022-10-12 15:37:45 · 491 阅读 · 0 评论 -
【设计模式】第二章:工厂模式详解及应用案例
工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。著名的Jive论坛 ,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见。因为工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,如A a=new A() 工厂模式也是用来创建实例对象的,所以以后new时就要多个心眼,是否可以考虑使用工厂模式,虽然这样做,可能多做一些工作,但会给你系统带来更大的可扩展性和尽量少的修改量。原创 2022-10-11 17:30:46 · 265 阅读 · 0 评论 -
【设计模式】第一章:单例模式详解及应用案例
单例模式,属于创建类型的一种常用的软件设计模式。通过单例模式的方法创建的类在当前进程中只有一个实例(根据需要,也有可能一个线程中属于单例,如:仅线程上下文内使用同一个实例)也就是说,一个类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。单例类有且只能有一个实例单例类必须自己创建自己的唯一实例。单例类必须给所有其他对象提供这一实例。原创 2022-10-11 13:50:48 · 376 阅读 · 0 评论 -
【设计模式】七大设计原则
名称定义使用频率单一职责原则(SRP)一个类应只负责一项职责⭐⭐⭐⭐开闭原则(OCP)程序的实体应对扩展开放,对修改关闭。开闭原则的关键在于抽象化⭐⭐⭐⭐⭐里氏替换原则(LSP)所有引用基类对象的地方能够透明地使用其子类的对象,子类不应该覆盖父类的非抽象方法。里氏代换原则是实现开闭原则的重要方式之一⭐⭐⭐⭐⭐依赖倒置原则(DIP)抽象不应该依赖于细节,细节应该依赖于抽象。是开闭原则的基础,可以通过依赖注入的方式实现⭐⭐⭐⭐⭐接口隔离原则(ISP)使用多个不同的实现接口,而不是使用一个接口完成多件事。原创 2022-10-10 17:38:03 · 211 阅读 · 0 评论