设计模式
文章平均质量分 69
北堂飘霜
如果不去争取,你想要的东西永远都不是你的!
展开
-
单例模式-终章
之前我们写的代码是有问题的,在任何阶段,谁也无法保证写出没有任何问题的代码,但是我们要不断的去升级,去反省自己之前的工作,是否有不足,是否可以做的更好,代码是否有最优的解决方案,当前代码是否犯了同样的问题,这样,我们才能够不断的提升,不断的进步。所以这个并不好,也很笨,其实创建一个对象也是比较费时费力的事情,上去就创一个并不是一个明智的选择,所以有了所谓的懒汉式创建,可是懒汉式双锁是一个愚蠢的选择, 那么我们应该如何去正确的创建一个单例对象呢?这次我们全面的去构造一个安全的,高效率的单例。原创 2023-01-19 15:17:51 · 1463 阅读 · 0 评论 -
设计模式之代理模式实战
场景众所周知,视频类文件size比较大,不适合存在本地,适合存在阿里云OSS,向图片这些小文件,存在本地即可(不展示阿里云和本地文件上传,只展示代理模式的逻辑)。分布式文件代理服务器实现实现分析...原创 2021-08-28 23:01:12 · 87 阅读 · 0 评论 -
工作日志之 线程和定时器
场景我们要做数据库迁移,S库和T库,当S库表结构改变,程序并不能侦测,导致无法实时同步,此时就需要有个定时任务去刷新表结构,然后如果改变则刷新上下文配置。这里就涉及到选择定时任务还是开线程的问题分析定时器优点:使用简单,仅需设置一个时长和其OnTime事件即可使用。缺点:之前写定时器去刷银行接口,我一直任务是并行执行的,但是在一次失误中,导致整个定时任务堵塞卡死,导致了系统崩了,才知道定时器是串行的,而且占用的是主线程的资源,看似并行实际上是串行,所以窗体的消息队列一旦堵塞,就会造成系统假死或者运原创 2021-08-27 09:39:16 · 197 阅读 · 0 评论 -
设计模式之工厂设计模式
定义:工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。它负责实现创建所有实例的内部逻辑。工厂类的创建产品类的方法可以被外界直接调用,创建所需的产品对象。优点:1、一个调用者想创建一个对象,只要知道其名称就可以了。2、屏蔽产品的具体实现,调用者只关心产品的接口。3、降低了耦合度工厂模式案例我们来做这么一个案例,创建一个接口Product和Product的实现类IPhone以及IPad,再定义一个具体原创 2021-08-21 21:30:26 · 102 阅读 · 0 评论 -
设计模式之代理模式
描述北堂先生要去租房,那么肯定会去找中介(二房东),中介就是房东的代理者,我原来访问不了房东,有了中介可以访问了。所以代理模式的定义是给某对象提供一个代理对象,通过代理对象可以访问该对象的功能。主要解决通过代理去访问[不能直接访问的对象]这样的优点是:1、职责清晰。2、高扩展性。3、智能化。缺点是:1、由于在客户端和真实主题之间增加了代理对象,因此有些类型的代理模式可能会造成请求的处理速度变慢。2、实现代理模式需要额外的工作,有些代理模式的实现非常复杂。代理实现方式:基于接口的动态代理原创 2021-08-21 20:48:31 · 94 阅读 · 0 评论 -
设计模式之举例说 设计原则
契机前几天说了一下设计模式,例如这个单例模式,观察者模式,后面还会说一下别的设计模式:例如 代理模式,工厂模式,适配器模式,享元模式,装饰者模式等等.当然了,不会全部说完23中,因为实际中也就会用到6-7中,如果为了用设计模式而用设计模式则就和初衷背道而驰了.一个优良的设计系统都会有这些特点:1.可扩展性(Extensibility)2.灵活性(Flexibility)3.组件化可插拔式(Pluggability)面向对象编程常用的设计原则包括7个,这些原则并不是孤立存在的,它们相互依赖,相互补充原创 2021-08-21 16:15:23 · 184 阅读 · 0 评论 -
适配器视图渲染
流程分析在我们做视图解析的时候,有不同的解析方式,比如有直接输入json数据、重定向、转发、输出文件流等多种方式。通常采用哪种解析方式由执行方法的返回值决定,例如返回一个字符串,我们可以把返回的字符串当做响应的页面,这时候可以采用转发的方式,如果返回的是一个JSONBEAN,这时候我们可以采用输出json字符串的方式解析。像这一块的实现,我们可以采用适配器模式实现。实现步骤大体如下1、定义一个视图解析接口ViewHandler,提供2种解析方式,分别为json输出和forward2、为接口实现原创 2021-08-19 21:52:03 · 95 阅读 · 1 评论 -
设计模式之观察者模式
定义:对象之间存在一对多或者一对一依赖,当一个对象改变状态,依赖它的对象会收到通知并自动更新。MQ其实就属于一种观察者模式,发布者发布信息,订阅者获取信息,订阅了就能收到信息,没订阅就收不到信息。优点:1、观察者和被观察者是抽象耦合的。2、建立一套触发机制。缺点:1、如果一个被观察者对象有很多的直接和间接的观察者的话,将所有的观察者都通知到会花费很多时间。2、如果在观察者和观察目标之间有循环依赖的话,观察目标会触发它们之间进行循环调用,可能导致系统崩溃。(例如:A变化了要通知B,B变化了通知原创 2021-08-10 16:36:02 · 263 阅读 · 0 评论 -
设计模式之单例设计模式
单例模式单例模式(Singleton Pattern)是 Java 中最常见的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。单利模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。该类还提供了一种访问它唯一对象的方式,其他类可以直接访问该方法获取该对象实例,而不需要实例化该类的对象。特点1、单例类只能有一个实例。2、单例类必须自己创建自己的唯一实例。3、单例类必须给所有其他对象提供这一实例。优点1、在内存里只有一个实例,减少了内存原创 2021-08-09 23:13:12 · 114 阅读 · 0 评论