本月博客排行
-
第1名
龙儿筝 -
第2名
lerf -
第3名
fantaxy025025 - johnsmith9th
- xiangjie88
- zysnba
年度博客排行
-
第1名
青否云后端云 -
第2名
宏天软件 -
第3名
gashero - wy_19921005
- vipbooks
- benladeng5225
- e_e
- wallimn
- javashop
- ranbuijj
- fantaxy025025
- jickcai
- gengyun12
- zw7534313
- qepwqnp
- 解宜然
- ssydxa219
- zysnba
- sam123456gz
- sichunli_030
- arpenker
- tanling8334
- gaojingsong
- kaizi1992
- xpenxpen
- 龙儿筝
- jh108020
- wiseboyloves
- ganxueyun
- xyuma
- xiangjie88
- wangchen.ily
- Jameslyy
- luxurioust
- lemonhandsome
- mengjichen
- jbosscn
- zxq_2017
- lzyfn123
- nychen2000
- forestqqqq
- wjianwei666
- ajinn
- zhanjia
- siemens800
- Xeden
- hanbaohong
- java-007
- 喧嚣求静
- mwhgJava
最新文章列表
Java设计模式篇(八)--原型模式详解
在说原型模式之前,我想说说原型的概念。
什么是原型呢?我们都复印过文件吧,比如说我们只用一份文件,就可以复印出无数的复印件,这个原文件就是我们的原型。在Java语言中,原型对象就是我们要复制的对象,这里就涉及到了复制的概念。那原型模式就是根据现有实例生成新实例的模式。
一、原型模式概述
在《JAVA与模式》中这样描述原型模式:
原型模式属于对象的创建模式。通过给出一个原型对象来指明 ...
java设计模式--简单工厂模式
简单工厂模式的概念
<!--5f39ae17-8c62-4a45-bc43-b32064c9388a:W3siYmxvY2tJZCI6Ijk1NDctMTU0NjY1NzUwNTUxMiIsImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6e30sInR5cGUiOiJwYXJhZ3JhcGgiLCJyaWNoVGV4dCI6eyJkYXRhIjpbe ...
完美单例-从此世界安静,不再混淆视听
我发现平时很多人写单例都写的不明不白,东拼西凑乱七八糟的写:
有的性能上没有实现lazyload(程序启动即加载到内存)
有的线程不安全
有的代码不够简洁明了实现复杂
甚至有的连构造私有都没有
看过下面这种写法可以彻底解决上述问题,可以称之为完美单例,看完代码此贴了结。
package java.hanson.single;
/**
* 完美单例
* 皇叔* 2018年11月2 ...
Java设计模式篇(四)--装饰模式详解
我们来说一下装饰模式。
一、什么是装饰模式
装饰模式也叫包装模式,使用它可以给指定对象增强原有功能,用于扩展原有功能。相比于子类继承,装饰模式提供了更好的灵活性。而对于使用者来说,这个过程是透明的,调用方式没有发生变化。
二、装饰模式的结构图
从结构图我们可以看到,在装饰模式中存在的角色:
抽象组件角色(Component):在抽象组件接口类中,抽象出要增强的功能接口。
具体 ...
Java设计模式中软件的设计原则篇
一、单一职责原则(Single Responsibility Principle--SRP)
就一个类而言,应该仅有一个引起它变化的原因。如果一个类的职责太多,就等于把这些职责耦合在一起,一个职责的变化可能会影响这个类其他职责能力,这种耦合就会导致脆弱的设计。当发生变化时,设计会遭受到意想不到的破坏。软件设计真正要做的,就是发现职责然后将这些职责相互分离。
那如何判断是否应该分离出类来?如果 ...
Java设计模式篇(三)--简单工厂模式详解
在说简单工厂模式之前,我们先来了解下活字印刷术。
古时候没有现在这么现代化,都是先刻好印版,然后用印版将文章去印在纸上。每写一篇,都得刻一版,好累。
毕昇,是个头脑很灵活的工匠,他就在想,如果我把每个字都单独刻出来,你用的时候自己去组合,这样不就省事了,因此,一项伟大的发明就出现了---活字印刷术。
活字印刷术有4大特点:
第一,要改文章的字,只需要替换对应的字模就行,这是可维护。
第 ...
Java设计模式篇(二)--策略模式详解
在说策略模式之前,我们先来分析一个需求。
一、需求分析及实现过程
某商场经常有促销活动,第一次是满200送80,第二次是所有商品打8折,第三次是所有商品打9折,第四次是满300送120等等。如果让你设计你怎么做?
我们都在说面向对象编程,但是并不是类越多越好。分类的目的是为了抽象,将所有共性(相同的属性和功能)的对象抽象成一个类。
我们先来找共性,打折类的需求我们可以抽象成一个需求,因为 ...
Java设计模式篇(一)--代理模式详解(这一篇足够了)
在设计模式中,代理模式是经常会用到的一种模式。但是光说设计模式,没有实际意义。在Mybatis源码系列中,用到了该设计模式,因此,我们结合Mybatis使用的代理模式过程,来分析下如何使用代理模式,代理模式的核心是什么。
一、基于接口的代理模式
在讲代理模式的时候,我想起在大话模式中讲的一个故事。A暗恋B,想给B送个礼物,但是又不能直接给B送去。因此,它去礼物店,买了一件礼物,告诉店员心仪的 ...
100行代码让您学会JavaScript原生的Proxy设计模式
面向对象设计里的设计模式之Proxy(代理)模式,相信很多朋友已经很熟悉了。比如我之前写过代理模式在Java中实现的两篇文章:
Java代理设计模式(Proxy)的四种具体实现:静态代理和动态代理
Java动态代理之InvocationHandler最简单的入门教程
其实和Java一样,JavaScript从语言层面来讲,也提供了对代理这个设计模式的原生支持。我们用一个不到100 ...