设计模式总结

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)遵循设计原则

 

posted @ 2019-02-26 16:17  StingLon  阅读(141)  评论(0)    收藏  举报