本月博客排行
-
第1名
龙儿筝 -
第2名
johnsmith9th -
第3名
wy_19921005 - zysnba
- sgqt
- lemonhandsome
年度博客排行
-
第1名
宏天软件 -
第2名
青否云后端云 -
第3名
龙儿筝 - gashero
- wallimn
- vipbooks
- benladeng5225
- wy_19921005
- fantaxy025025
- e_e
- zysnba
- ssydxa219
- sam123456gz
- javashop
- arpenker
- tanling8334
- kaizi1992
- xpenxpen
- wiseboyloves
- xiangjie88
- ranbuijj
- ganxueyun
- xyuma
- sichunli_030
- wangchen.ily
- jh108020
- lemonhandsome
- zxq_2017
- jbosscn
- Xeden
- luxurioust
- johnsmith9th
- lzyfn123
- zhanjia
- forestqqqq
- ajinn
- nychen2000
- wjianwei666
- hanbaohong
- daizj
- 喧嚣求静
- silverend
- mwhgJava
- kingwell.leng
- lchb139128
- lich0079
- kristy_yy
- jveqi
- java-007
- sunj
最新文章列表
[初级]设计模式--享元模式
/**
* 享元模式
*
* 如果程序中存在大量的对象,并且对象之间也较为类似
* 这样,对象之间类似的部分就可以共享出来,这样就减少了内存开销
*
* 1、具体实体类(大量对象中可共享部分)
* 2、工厂类(共享池,返回已有对象或创建新对象)
* 3、外部状态(大量对象中可不共享部分)
*
* 优点:
* 1、节省内存开销
* 缺点:
...
[初级]设计模式--建造者模式
/**
* 建造者模式
*
* 将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
*
* 1、建造者接口,定义建造者需要提供的功能
* 2、指挥者类,定义了建造过程
* 3、具体建造者提供建造的具体实现
*
* 优点:
* 1、客户端调用时不用知道内部细节,指定建造者即可
* 2、建造者之间是相互独立 ...
[初级]设计模式--模板方法模式
/**
* 模板方法模式
*
* 实现算法时,整体过程很固定,只有部分易改变
* 则可以将固定的部分提取到父类中实现,由子类实现易变的部分
*
* 基本方法:
* 1、抽象方法:父类声明,由子类具体实现
* 2、具体方法:父类实现,子类可以根据情况进行覆盖或直接继承
* 3、钩子方法:子类重写的父类方法
*
* 优点:
* 1、 ...
[初级]设计模式--装饰模式
/**
* 装饰模式
*
* 类似于代理模式
* 与代理的区别:
* 1、真实角色持有(?)
* 代理:代理角色并不一定需要调用者提供真实角色(调用者不需要持有真实角色)
* 装饰:调用者需要持有真实角色,并提供给装饰器
* 2、真实角色控制
* 代理:代理角色返回任意真实角色,甚至不返回真实角色
* 装饰:对传入的真实角色进行装饰,然后将 ...
[初级]设计模式--桥接模式
/**
* 桥接模式
* 解决多维度可变属性造成的多类问题
* (用到了组合,但与 组合模式 没关系)
*
* 场景:
* 各大品牌生产电子产品
* 品牌:联想、戴尔、苹果
* 产品:台式机、笔记本、pad
*
* 如果采用继承的方式实现类结构,那类的数量则是一个乘积的关系
* (联想、戴尔、苹果)*(台式机、笔记本、pad)
...
[初级]设计模式--适配器模式
/**
* 适配器模式
* 1、源角色(已有的角色)
* 2、目标角色(需要成为的角色)
* 3、适配器角色(将 原角色 转换成 目标角色)
*
* 优点:
* 1、不用修改已有代码
* 2、复用已有代码
* 缺点:
* 1、会造成类相互之间的关系不清晰
*
* 注意:
* 属于"补丁"方法,尽量不要有机 ...
[初级]设计模式--观察者模式
/**
* 模拟 观察者模式
* 场景:
* 小孩睡觉,家长工作
* 小孩醒来,家长喂饭
*/
public class ObserverDemo01 {
public static void main(String[] args) throws InterruptedException {
MyBaby b = new MyBaby();
MyP ...
[初级]设计模式--工厂模式
/**
* 所有工厂模式都是为了让对象的调用者和对象创建过程分离,简化调用端代码,便于维护
* 简单地对象创建则不需要使用工厂模式
*/
/**
* 简单工厂(静态工厂)
*
* 1、创建产品接口
* 2、创建工厂类
* 3、工厂类通过传入参数的不同返回不同的产品
*
* 优点:
* 1、代码调用简单,类之间的关系也较简单
* 缺 ...
[初级]生产者消费者问题
/**
* 灰烬之灵EM(同一场景、同一资源)
*/
public class EM {
/**
* 最大充能数量
*/
private final int MAX_F_COUNT = 3;
/**
* 火之余烬F 充能个数
*/
private int count;
/**
* 火之余烬 个数是否已满
*/ ...
[初级]设计模式--静态代理模式
/**
* 通过接口方式实现静态代理(聚合)
*
* 1、定义公共接口(IMoveable)
* 2、定义真实对象 继承接口(IMoveable) 实现功能(Tank)
* 3、定义代理类 继承接口(IMoveable) 实现前后逻辑/业务逻辑(TankTimeProxy/TankLogProxy)
*
* 调用的时候可以通过修改代理顺序来来改变逻辑实 ...
[初级]设计模式--单例模式
/**
* 单例设计模式(单ClassLoader)
*
* 1、懒汉式:
* 线程不安全、调用效率高、可以延迟加载
* 线程安全、调用效率低、可以延迟加载(加 synchronized 线程安全)
* 2、恶汉式:
* 线程安全、调用效率高、不可以延迟加载
* 3、静态内部类:
* 线程安全、调用效率高、可以延迟加载
* 4、双重检测锁 ...