设计模式
文章平均质量分 65
一户董
专注后端技术分享!!!
展开
-
GOF 23 种设计模式应用场景分析
本文看下GOF 23 种设计模式应用场景,详细的还是通过文章给出参考链接学习下。原创 2023-07-23 11:00:13 · 455 阅读 · 0 评论 -
设计模式之访问者模式
当一个对象,有固定的的几个元素(element),并且当这个对象要完成不同的任务(Visitor)时,固定的这几个元素在任务中承担的职责也不同,当满足这种场景时就可以考虑使用访问者设计模式。原创 2023-07-22 22:33:10 · 227 阅读 · 0 评论 -
设计模式之状态模式
当一个类的内部的状态不同时,需要执行不同的操作,此时可以考虑使用状态设计模式。原创 2023-07-22 17:22:09 · 569 阅读 · 0 评论 -
设计模式之观察者模式
pub,sub场景。原创 2023-07-22 16:21:21 · 287 阅读 · 0 评论 -
设计模式之备忘录模式
当某个对象需要记录在某个或者是某几个时刻的运行状态,并且可能在后续恢复到某个状态时,就可以考虑使用备忘录设计模式。比如,记事本每次打开都是上次的内容,或者通过ctrl+z可以回复到上一次的修改,再比如,游戏,我们可以暂停游戏,当恢复游戏之后还是可以继续,而不是从头玩。原创 2023-07-22 11:18:33 · 139 阅读 · 0 评论 -
设计模式之中介者模式
TODO。原创 2023-07-22 09:53:00 · 75 阅读 · 0 评论 -
设计模式之迭代器模式
1:内部元素具体是什么结构是不稳定的,可能会随时改变,改变后,之前的客户端代码将不可用2:内部元素直接暴露可能会引起数据的安全问题,外部有意或者是无疑的数据修改,会引起不可预知的bug此时,就可以考虑使用迭代器设计模式。原创 2023-07-22 09:48:33 · 332 阅读 · 0 评论 -
设计模式之命令模式
如果某个对象依赖于外部传入的具体参数来执行具体的操作时,就可以考虑使用命令设计模式,如空调的制冷,制热,小爱同学的唱歌,讲笑话等,都是通过外部的具体指令发生的操作。原创 2023-07-21 21:41:04 · 465 阅读 · 0 评论 -
设计模式之解释器模式
TODO。原创 2023-07-20 20:54:07 · 83 阅读 · 0 评论 -
设计模式之代理模式
当我们有对象因为安全性,不能直接对外暴露,或者是需要对对象的操作本身记录日志等信息时就可以考虑使用代理模式,原创 2023-07-19 22:03:23 · 1168 阅读 · 0 评论 -
设计模式之享元模式
当程序需要大量的重复对象,并且这些大量的重复对象只有部分属性不相同,其他都是相同的时候,就可以考虑使用享元设计模式设计模式来实现。典型的如围棋游戏中的棋子,除了颜色和位置不同外,其他都相同。射击游戏中的子弹,除了大小,型号,杀伤力等不同外,其他都相同。原创 2023-07-18 17:58:14 · 690 阅读 · 0 评论 -
设计模式之组合模式
当我们有类似于树形结构的需求时,可以考虑使用组合设计模式,比如公司部门层级,有的大部门,下边还有下级部门。原创 2023-07-17 21:19:12 · 222 阅读 · 0 评论 -
设计模式之桥接模式
1:杯子的大小,可能是大杯,中杯,小杯2:咖啡的味道,可能是原味,加糖,加奶,加糖和奶对于以上的这个场景,我们就可以考虑使用桥接设计模式来实现。原创 2023-07-16 20:52:26 · 593 阅读 · 0 评论 -
设计模式之适配器模式
当现有接口客户端无法直接调用时,我们可以考虑适配器设计模式,来定义一个能够供客户端直接调用的接口,并在其中进行自动的适配(这也是适配器设计模式的核心)。原创 2023-07-15 14:56:34 · 627 阅读 · 0 评论 -
设计模式之单例模式
但我们看某个电影,或者是某个电视剧的时候,总会提到某某人是某某角色的原型,这里某某角色就好像是某某人的复制品一样,这里的原型设计模式也是如此,不过,这里的原型是一个对象,而原型设计模式就是指复制这个原型对象,生成一个新的对象。本文就一起来看下吧!当程序只需要一个对象时使用。原创 2023-07-15 11:07:09 · 1045 阅读 · 0 评论 -
设计模式之原型模式
当对象的创建成本比较大,比如一个对象的创建需要依赖于其它服务的调用,需要依赖于数据库的查询,则此时,就可以考虑使用原型设计模式,通过拷贝(克隆)的方式来生成新的对象。实际上,在java中,原型设计模式的实现是非常简单的,因为java天生支持克隆,只需要实现接口标记该对象可以被克隆,则就可以调用clone方法(来自Object的native方法)来克隆对象了。原创 2023-07-14 21:54:37 · 690 阅读 · 0 评论 -
设计模式之建造者设计模式
当一个对象的属性很多,并且在不同的场景下对象创建时需要初始化的属性不同时,可以考虑使用该设计模式,否则就需要创建大量的构造函数,造成代码的臃肿和难以维护,并且对于使用者来说,到底选择哪个构造函数来初始化也会比较麻烦。原创 2023-07-13 21:14:33 · 432 阅读 · 0 评论 -
设计模式之抽象工厂模式
当我们有若干个种类的对象需要创建,并且每个种类的对象需要由多个对象协调工作才能完成任务,此时可以考虑使用抽象工厂设计模式。原创 2023-07-13 17:10:49 · 573 阅读 · 0 评论 -
设计模式之工厂方法模式
当我们有若干个种类的对象需要创建,且随着业务的发展,要创建的对象的种类还会不断变化,此时可以考虑使用工厂方法设计模式。原创 2023-07-13 15:11:23 · 651 阅读 · 0 评论 -
设计模式之模板方法模式
java程序的设计原则6大原则:单一职责:一个类和方法只做一件事。开闭原则:对修改关闭,对扩展开发。里氏替换原则:子类可扩展新方法,但不可修改父类已有方法(父类已提供了具体实现的方法)。依赖倒置:依赖于抽象,而非具体实现,即面向接口编程(如方法参数,类属性使用接口声明,这样可接收任何子类)。接口隔离:使用多个隔离的接口定义抽象,降低耦合。最少知道/迪米特原则:降低类之间的依赖,聚合,组合等。1:模板方法设计模式模板方法设计模式是行为型设计模式中的一种,用在一个功能的完成需要经过一系列步骤原创 2022-02-14 16:55:41 · 7758 阅读 · 2 评论 -
设计模式之简单工厂模式
java程序的设计原则6大原则:单一职责:一个类和方法只做一件事。开闭原则:对修改关闭,对扩展开发。里氏替换原则:子类可扩展新方法,但不可修改父类已有方法(父类已提供了具体实现的方法)。依赖倒置:依赖于抽象,而非具体实现,即面向接口编程(如方法参数,类属性使用接口声明,这样可接收任何子类)。接口隔离:使用多个隔离的接口定义抽象,降低耦合。最少知道/迪米特原则:降低类之间的依赖,聚合,组合等。1:简单工厂设计模式简单工厂模式并不是Gof23种设计模式中的一种,但也是一种设计模式废话,而且原创 2022-02-13 18:00:13 · 499 阅读 · 0 评论 -
设计模式之责任链模式
java程序的设计原则6大原则:单一职责:一个类和方法只做一件事。开闭原则:对修改关闭,对扩展开发。里氏替换原则:子类可扩展新方法,但不可修改父类已有方法(父类已提供了具体实现的方法)。依赖倒置:依赖于抽象,而非具体实现,即面向接口编程(如方法参数,类属性使用接口声明,这样可接收任何子类)。接口隔离:使用多个隔离的接口定义抽象,降低耦合。最少知道/迪米特原则:降低类之间的依赖,聚合,组合等。1:责任链设计模式责任链设计模式是行为型设计模式的一种,用来控制对象通过链式的方式来执行,一般适用原创 2022-02-12 20:33:33 · 859 阅读 · 0 评论 -
设计模式之装饰模式
java程序的设计原则6大原则:单一职责:一个类和方法只做一件事。开闭原则:对修改关闭,对扩展开发。里氏替换原则:子类可扩展新方法,但不可修改父类已有方法(父类已提供了具体实现的方法)。依赖倒置:依赖于抽象,而非具体实现,即面向接口编程(如方法参数,类属性使用接口声明,这样可接收任何子类)。接口隔离:使用多个隔离的接口定义抽象,降低耦合。最少知道/迪米特原则:降低类之间的依赖,聚合,组合等。1:装饰设计模式装饰装饰模式是创建型设计模式的其中一种,用来对现有的类进行功能的增强,可能有的同学原创 2022-02-11 18:33:28 · 1430 阅读 · 0 评论 -
设计模式之系列文章
设计模式之门面模式 。设计模式之策略模式 。原创 2022-02-10 09:56:31 · 665 阅读 · 0 评论 -
设计模式之门面模式
java程序的设计原则6大原则:单一职责:一个类和方法只做一件事。开闭原则:对修改关闭,对扩展开发。里氏替换原则:子类可扩展新方法,但不可修改父类已有方法(父类已提供了具体实现的方法)。依赖倒置:依赖于抽象,而非具体实现,即面向接口编程(如方法参数,类属性使用接口声明,这样可接收任何子类)。接口隔离:使用多个隔离的接口定义抽象,降低耦合。最少知道/迪米特原则:降低类之间的依赖,聚合,组合等。1:门面设计模式我的理解:门面设计模式的核心是降低用户对于复杂子系统的使用难度,即从要知道多个类原创 2022-02-04 12:32:14 · 2141 阅读 · 0 评论 -
设计模式之策略模式
java程序的设计原则6大原则:单一职责:一个类和方法只做一件事。开闭:对修改关闭,对扩展开发。里氏替换:子类可扩展新方法,但不可修改父类已有方法(父类已提供了具体实现的方法)。依赖倒置:依赖于抽象,而非具体实现,即面向接口编程(如方法参数,类属性使用接口声明,这样可接收任何子类)。接口隔离:使用多个隔离的接口定义抽象,降低耦合。最少知道/迪米特:降低类之间的依赖,聚合,组合等。1:策略设计模式策略设计模式一般使用的场景是,多种可互相替代的同类行为,在具体运行过程中根据不同情况,选择其中原创 2022-01-27 13:40:28 · 8077 阅读 · 0 评论