博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式总结
阅读量:5286 次
发布时间:2019-06-14

本文共 1498 字,大约阅读时间需要 4 分钟。

https://blog.csdn.net/yexunce3159/article/details/82773931

 详细参考;https://github.com/ZhongFuCheng3y/3y/blob/master/src/designmode.md

ecplise案例:setTest 包下的modeltwo类中

 

1.共23种设计模式

创建型(5种):主要用于处理对象的创建,实例化对象: 

单例,建造者,原型,工厂方法,抽象工厂

结构型(7种):处理类或对象间的组合 

适配器,装饰者,结合,桥接,外观,享元,代理

行为型(11种):描述类或对象怎样进行交互和职责分配 

策略,观察者,迭代器,命令,备忘录,中介者,解释器,访问者,责任链,状态,模板方法

 

2.单例中的懒汉式、饿汉式例子 ,以及线程安全性的懒汉式(DCL)、静态内部类:

public class modeltwo {

//饿汉式,先创建
/*private modeltwo(){};
private static modeltwo m=new modeltwo();
public static modeltwo getmodeltwo(){
return m;
}
//懒汉式
private modeltwo(){}
private static modeltwo m=null;
public static modeltwo getInstanse(){
if(m==null){
m=new modeltwo();
}
return m;
}
}

//DCL,   (特别在于关键字 volatile,synchronized的使用):

private modeltwo() {

}

private static volatile modeltwo m = null;

private static modeltwo getInstanse() {

if (m == null) {
synchronized (modeltwo.class) {
if(m==null)
m = new modeltwo();
}
}
return m;

}

//静态内部类

private static class tt{

private static final modeltwo INSTANCE=new modeltwo();
}
private static final modeltwo getInstanse(){
return tt.INSTANCE;
}

 

 

 

3.主要的设计模式

代理模式:静态代理(需要自己写代理类),动态代理(不需要,运行时自动生成)

包装模式(装饰模式):对象增强的一种方式之一 ,(实现对象增强有三种方式:继承,包装模式,代理模式)

单例模式(一个类中只存在一个对象):懒汉、饿汉、枚举、DLC、静态内部类懒汉式

工厂模式(作用是用来向使用者屏蔽创建对象的细节):简单/静态工厂模式、工厂方法模式、抽象工厂模式          补充:SAX解析XML文件时,用到过工厂模式,还DAOFactory

策略模式:

门面模式:

模版方法:

 

 

4.参考语句:

(1) 其实我们使用设计模式的根本原因是提升项目的可维护性。

(2)在项目里,我们经常会收到需求变更,当我们引入设计模式(或原则)后,发现能让项目拥抱修改。

(3)在项目里,我们一般不会只用其中某个,而会根据一些原则来优化我们的代码

(4)遵循设计原则

 

转载于:https://www.cnblogs.com/StingLon/p/10438102.html

你可能感兴趣的文章
Java IO-1 File类
查看>>
HW5.29
查看>>
Linux查看物理CPU个数,核数,逻辑CPU个数;内存信息
查看>>
sqlserver查询效率
查看>>
FoxMail邮件设置
查看>>
percona-toolkit 之 【pt-online-schema-change】说明
查看>>
[模板]大数加法
查看>>
ZeroBrane Lua脚本编辑器代码自动补全
查看>>
linux下播放mp3
查看>>
POJ1611-The Suspects-并查集
查看>>
笔记--cocos2d-x 3.0 环境搭建
查看>>
关于不断刷新界面jsp+ajax
查看>>
js高阶函数应用—函数防抖和节流
查看>>
eclipse 中java/scala 混合的maven项目 工作环境篇
查看>>
顺序栈与两栈共享空间-C语言实现
查看>>
【mongo】可以用localhost启动,无法用ip启动问题的解决
查看>>
【QT】视频播放
查看>>
揭开Redis的神秘面纱
查看>>
Object流
查看>>
Windows Phone开发(8):关于导航的小技巧 转:http://blog.csdn.net/tcjiaan/article/details/7285062...
查看>>