
Java常用的设计模式详解
侃侃而谈。句句是你
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
外观模式(Facade模式)详解
在现实生活中,常常存在办事较复杂的例子,如办房产证或注册一家公司,有时要同多个部门联系,这时要是有一个综合部门能解决一切手续问题就好了。软件设计也是这样,当一个系统的功能越来越强,子系统会越来越多,客户对系统的访问也变得越来越复杂。这时如果系统内部发生改变,客户端也要跟着改变,这违背了“开闭原则”,也违背了“迪米特法则”,所以有必要为多个子系统提供一个统一的接口,从而降低系统的耦合度,这就是外观...原创 2020-03-18 08:44:11 · 526 阅读 · 0 评论 -
桥接模式(Bridge模式)详解
在现实生活中,某些类具有两个或多个维度的变化,如图形既可按形状分,又可按颜色分。如何设计类似于 Photoshop 这样的软件,能画不同形状和不同颜色的图形呢?如果用继承方式,m 种形状和 n 种颜色的图形就有 m×n 种,不但对应的子类很多,而且扩展困难。当然,这样的例子还有很多,如不同颜色和字体的文字、不同品牌和功率的汽车、不同性别和职业的男女、支持不同平台和不同文件格式的媒体播放器等。如果...原创 2020-03-07 18:17:00 · 2139 阅读 · 0 评论 -
装饰设计模式详解
在现实生活中,常常需要对现有产品增加新的功能或美化其外观,如房子装修、相片加相框等。在软件开发过程中,有时想用一些现存的组件。这些组件可能只是完成了一些核心功能。但在不改变其结构的情况下,可以动态地扩展其功能。所有这些都可以釆用装饰模式来实现。装饰模式的定义与特点装饰(Decorator)模式的定义:指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式,它属于对...原创 2020-03-07 17:54:31 · 353 阅读 · 0 评论 -
Java 虚拟机调优的基本概念
1 运行数据区首先我简单来画一张 JVM的结构原理图,如下。我们重点关注 JVM在运行时的数据区,你可以看到在程序运行时,大致有5个部分。1.方法区不止是存“方法”,而是存储整个 class文件的信息,JVM运行时,类加载器子系统将会提取 class文件里面的类信息,并将其存放在方法区中。例如类的名称、类的类型(枚举、类、接口)、字段、方法等等。2.堆( Heap)熟习 c/c++编...原创 2020-02-24 12:28:19 · 184 阅读 · 0 评论 -
如何优雅处理代码中 Null 值引起的 Bug?告别 Null 恐惧症!
在笔者几年的开发经验中,经常看到项目中存在到处空值判断的情况,这些判断,会让人觉得摸不着头绪,它的出现很有可能和当前的业务逻辑并没有关系。但它会让你很头疼。有时候,更可怕的是系统因为这些空值的情况,会抛出空指针异常,导致业务系统发生问题。此篇文章,总结了几种关于空值的处理手法,希望对读者有帮助。业务中的空值场景存在一个 UserSearchService用来提供用户查询的功能:publ...原创 2020-02-24 12:00:37 · 443 阅读 · 0 评论 -
Java 8 日期时间处理
Java 8 推出了全新的日期时间API,在教程中我们将通过一些简单的实例来学习如何使用新API。求赞求关注Java处理日期、日历和时间的方式一直为社区所诟病,将 java.util.Date设定为可变类型,以及SimpleDateFormat的非线程安全使其应用非常受限。新API基于ISO标准日历系统,java.time包下的所有类都是不可变类型而且线程安全。类的名称描述...原创 2020-02-24 11:44:07 · 208 阅读 · 0 评论 -
个人对23种设计模式总结 优缺点理解并分析
关于设计模式的总结1.抽象工厂: Factory提供一个创建一系列或相关依赖对象的接口,而无需指定他们具体的类。针对多级结构.抽象工厂模式除了具有工厂方法模式的优点外,最主要的优点就是可以在类的内部对产品族进行约束。产品族的扩展将是一件十分费力的事情,假如产品族中需要增加一个新的产品,则几乎所有的工厂类都需要进行修改。适用场景当需要创建的对象是一系列相互关联或相互依赖的产品族时,便可...原创 2019-12-10 17:57:34 · 865 阅读 · 0 评论 -
细思极恐,你真的会写 java 吗?
导语自2013年毕业后,今年已经是我工作的第4个年头了,总在做java相关的工作,终于有时间坐下来,写一篇关于java写法的一篇文章,来探讨一下如果你真的是一个java程序员,那你真的会写java吗?笔者是一个务实的程序员,故本文绝非扯淡文章,文中内容都是干货,望读者看后,能有所收获。其实,本不想把标题写的那么恐怖,只是发现很多人干了几年java以后,都自认为是一个不错的java程序员了,可...原创 2019-12-10 10:26:02 · 282 阅读 · 0 评论 -
Java面试HTTP相关知识点!
详细介绍httpHTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。点击这里了解 http 1.0 vs 2.0 区别。在 OSI 七层模型中,HTTP协议位于最顶层的应用层中。通过浏览器访问网页就直接使用了 HTTP 协议。使用 HTTP 协议时,客户端首...转载 2019-02-16 09:06:19 · 1630 阅读 · 0 评论 -
工厂模式详解
工厂模式定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对。工厂模式根据抽象程度的不同分为:简单工厂抽象工厂工厂方法简单工厂:一个模块仅需要一个工厂类,没有必要把他生产出来,使用静态方法抽象工厂(Abstract Factory ):客户...原创 2019-01-09 10:26:44 · 218 阅读 · 0 评论 -
单例模式详解
单例模式(Singleton Pattern)是Java中最简单的设计模式之一,这种类型的设计模式属于创见型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类扶着创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类对象。单例模式:为了解决一个全局使用的类被频繁的创建和销毁,确保一个类只有一个实例,而且自行实例化并...原创 2019-01-09 09:20:29 · 116 阅读 · 0 评论