首页 > 其他分享 >写写我认知中的设计模式

写写我认知中的设计模式

时间:2023-12-14 21:22:42浏览次数:30  
标签:学习 迭代 对象 认知 生成器 模式 写写 设计模式

创建型我印象最深刻的就是单例模式,我记得他有一个特别经典的案例:任务管理器;而且我对这个模式的印象也比较深刻:将创建方法私有化,意味着不可以再次创建对象,仅对对象的调用。

最近有所感悟的是生成器模式,其实上次软考的学习中我唯一不理解的就是生成器模式,当时听zst2003老师讲,一头雾水,现在再重新接触一遍豁然开朗。我接触的时候很快就想起了一个token生成的案例

JWT.create().withAudience(userId)
                .withExpiresAt(DateUtil.offsetHour(new Date(),2))
                .sign(Algorithm.HMAC256(password));
    }

不过很遗憾的是,我问chat的时候,chat回答我这不是生成器模式,他是运用了链式调用的方式。不过他也是有一些生成器模式的特征的。关于生成器模式的案例,我印象最深刻的汽车的组装,有的汽车不需要安装一些特殊设备,那在生成的时候就可以省略那些方法。生成器模式就是将一个复杂对象的生成与它的表示分离。印象里我好像使用过生成器模式的,我在我的一个小项目里全文查找还是查找到了一个案例:使用swagger的时候

return new Docket(DocumentationType.SWAGGER_2)  // DocumentationType.SWAGGER_2 固定的,代表swagger2
                .apiInfo(apiInfo()) // 用于生成API信息
                .select() // select()函数返回一个ApiSelectorBuilder实例,用来控制接口被swagger做成文档
                .apis(RequestHandlerSelectors.basePackage("com.example.controller")) // 用于指定扫描哪个包下的接口
                .paths(PathSelectors.any())// 选择所有的API,如果你想只为部分API生成文档,可以配置这里
                .build();

外观模式:我们平时写的javaweb网页其实就是运用了外观模式和命令模式

享元模式:这个印象最深的是讲的下黑白棋,下棋就要用到很多棋子,在网络游戏中还有很多个房间,如果每一个棋子都是一个对象,那么就需要产生巨量的对象,为此产生了享元模式,他可以有效的支持大细粒度的对象。

很难想象迭代器模式居然能作为设计模式,在学习编程的开始我们就学习了循环,我在之前学习了Python的迭代,了解了如何对对象迭代,后面在java中学习了arraylist,hashmap等等,现在又学习了lambda表达式快速迭代,这个应该是我应用的最多最习以为常的模式了

中介者模式观察者模式:这两个模式我还没有亲手实践过,不过我后面打算学习使用javaweb开发一个小的聊天室,我觉得可能会用到中介者模式;我当前仅仅是学习了redis的基础,在后面redis的实践中"follow"应该是一个比较好实现的应用实例

责任链模式是我能想起我可能用过的最后一个设计模式了,这个其实也是很常见的一个设计模式,网页开发初期大家都有过手撸登录注册网页的经历,而登录注册两个功能都经历了多个对象处理请求

标签:学习,迭代,对象,认知,生成器,模式,写写,设计模式
From: https://www.cnblogs.com/kun1790051360/p/17902039.html

相关文章

  • Python实现软件设计模式2:工厂方法模式
    特点工厂存在父类和子类,产品存在父类和子类。工厂父类负责定义创建产品对象的公共接口,工厂子类负责生成具体的产品对象。包含的角色Product抽象产品ConcreteProduct具体产品Factory抽象工厂ConcreteFactory具体工厂模式分析工厂方法模式是简单工厂模式的进......
  • 关于设计模式
    一、设计原则:保留不变的部分,抽取变化的部分面向接口编程多用组合,少用继承对拓展开放,对修改关闭二、设计模式1、策略模式利用多态,将变化的部分抽象成一个接口,针对该接口有不同的实现2、观察者模式主题接口和观察者接口主题维护观察者的增加、删除、通知;3、装饰者模式......
  • 软件设计模式需要考虑的原则
    1.单一职责原则(SRP,SingleResponsibilityPrinciple)一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。职责分离,提升模块的可复用性,SRP是实现高内聚、低耦合的指导方针。2.开闭原则(OCP,Open-ClosedPrinciple)软件实体应该对扩展开放,对修改关闭。表示软件实体......
  • Python实现软件设计模式1:简单工厂/静态工厂模式
    包含的角色工厂角色Factory静态方法抽象产品角色Product声明公用的抽象方法和属性具体产品角色ConcreteProduct覆盖抽象产品中声明的方法,多种产品多种覆盖模式特点可以降低系统耦合度,使用工厂方法时无需知道对象创建细节,传入工厂类的参数可以是字......
  • 设计模式:简单工厂模式
    简单工厂模式不直接向客户端暴露对象创建的实现细节,而通过一个工厂类来负责创建产品类的实例。简单工厂模式的组成:抽象产品(AbstractProduct):定义产品的接口,在这个例子中是Payment类。具体产品(ConcreteProduct):实现抽象产品接口的类,在这个例子中是Alipay和Wechat......
  • 简单写一下设计模式7原则
    开闭原则:只许增加,不许修改;使用抽象进行构建,使用实现拓展细节;面向抽象编程;提高可复用性和可维护性依赖倒转原则:依赖抽象,而不是依赖具体的实现,可以减少耦合性,提高系统稳定性,降低修改程序的风险单一职责原则:一个类,接口,方法只负责一个职责;降低复杂度,提高可维护性接口隔离原则:使用多......
  • 23种设计模式——外观模式
    今天我们讲解的是23种设计模式中外观模式。外观模式主要通过向现有的系统添加一个接口,来隐藏系统的复杂性。概念:外观模式是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体的......
  • 浅谈设计模式-工厂模式的设计思想以及细节问题(上篇)
    1什么是工厂模式?工厂模式,顾名思义,就是把将对象的实例化过程封装在工厂类中的方式。工厂负责生产相应的对象实例。一般分为两种工厂模式:简单工厂;抽象工厂优点:用户不需要解决具体的细节问题,利用工厂类进行生产产品细节;可以将对象的创建与使用代码分离,提供一种统一的接口来创建不同类......
  • 设计模式之命令模式
    1.定义将一个请求封装成一个对象,从而允许客户端参数化不同的请求、将请求排队或者记录请求日志、以及支持可撤销的操作2.口语化表述假设某餐厅的工作流程如下:顾客在大堂点餐,服务员记录菜单服务员将菜单送到后厨后厨根据菜单做菜服务员根据菜单送到对应的餐桌在这个场......
  • 设计模式之单例模式:不同实现方式的深度解析
    什么是单例模式单例模式是一种常用的软件设计模式,其主要作用是保证某一个类只能有一个实例,并提供对该实例的全局访问点。单例模式有三个要点:1.某个类只能有一个实例。2.它必须自行创建这个实例。3.它必须自行向整个系统提供这个实例。单例模式的分类单例设计模式在具体实现......