Java复习篇三

从天津转站北京,爬到中关村到直立行走
Java复习篇三
Java23种设计模式

Singleton(单列模式)
package Javamodel;

/**
* Singleton单列模式
* @author xinglefly
* @version 1
*/
public class Single {

/**1.饿汉式
public Single(){}
private static final Single instance = new Single();
public Single getInstance(){
return instance;
}
*/


/**2.懒汉式 特点:延时加载,
* 懒汉式延时加载有问题?
* 有,如果多线程访问时会出现安全问题,加同步代码块来解决,用两种同步都可以,用两重否定的形式解决效率问题,
* 加同步的时候用的锁是哪一个?
* 该类字节码所属该类对应的字节码文件对象
*
*/
private static Single instance = null;
public Single(){}
public static Single getInstance(){
if(instance == null){
synchronized(Single.class){
if(instance == null)
return instance = new Single();
}
}
return instance;
}
}
享元模式
package Javamodel;

/**
* 享元模式就是有很多个小的对象,有很多属性相同把他们变成一个对象,那些不同的属性变成的方法的参数,称为外部状态。
*   把那些形同属性的参数称为内部属性。
* @author xinglefly
*
*/
public class FlyWeight {
public static void main(String[] args){

Integer i1 = 127;
Integer i2 = 127;
Integer i3 = 128;
//-128-127
System.out.println(i1 == i2);
System.out.println(i1==i3);
}
}

3.装饰设计模式
package com.blackhorse.io;
/**
* 装饰设计模式:
* 当想要对已有的对象进行功能增强时,可以定义类,将已有对象传入,基于已有的功能,并提供加强功能。
* 那么自定义的该类称为装饰类
* 装饰类通产光辉通过构造方法接收被装饰的对象。
* 并基于被装饰的对象的功能,提供更强的功能。
*
* 装饰模式比继承要灵活。避免了继承体系臃肿。而且降低了类与类之间的关系。
*
* 装饰类因为增强已有兑现个,具备的功能和已有的是相同的,只不过提供了更强的功能。
* 所以装饰类和被装饰类通常是都属于一个体系中的。
* @author xinglefly
* @version 1
*/
class Pe{
public void eat(){
System.out.println("hava a meat");
}
}
class SuperPe{
private Pe p;
SuperPe(Pe p){
this.p=p;
}
public void superEat(){
System.out.println("drink wine");
p.eat();
System.out.println("吃一些甜点");
}
}
public class DesigneDemo {
public static void main(String[] args){
Pe p = new Pe();
// p.eat();
SuperPe sp = new SuperPe(p);
sp.superEat();
}
}

猜你喜欢

转载自xinglefly.iteye.com/blog/1673150