java常用设计模式
2011-05-15 10:35
344 查看
1.单例模式(有的书上说叫单态模式其实都一样) :
该模式主要目的是使内存中保持1个对象。
3.建造模式
该模式其实就是说,一个对象的组成可能有很多其他的对象一起组成的,比如说,一个对象的实现非常复杂,有很多的属性,而这些属性又是其他对象的引用,可能这些对象的引用又包括很多的对象引用。封装这些复杂性,就可以使用建造模式。
4.门面模式
这个模式个人感觉像是Service层的一个翻版。比如Dao我们定义了很多持久化方法,我们通过Service层将Dao的原子方法组成业务逻辑,再通过方法向上层提供服务。门面模式道理其实是一样的。
该模式主要目的是使内存中保持1个对象。
2.工厂模式 该Java设计模式主要功能是统一提供实例对象的引用。 public class Factory{ public ClassesDao getClassesDao(){ ClassesDao cd = new ClassesDaoImpl(); return cd; } } interface ClassesDao{ public String getClassesName(); } class ClassesDaoImpl implements ClassesDao { public String getClassesName(){ System.out.println("A班"); } } class test { public static void main(String[] args){ Factory f = new Factory(); f.getClassesDao().getClassesName(); } } public class Factory{ public ClassesDao getClassesDao(){ ClassesDao cd = new ClassesDaoImpl(); return cd; } }interface ClassesDao{ public String getClassesName(); }class ClassesDaoImpl implements ClassesDao { public String getClassesName(){ System.out.println("A班"); } }class test { public static void main(String[] args){ Factory f = new Factory(); f.getClassesDao().getClassesName(); } }
3.建造模式
该模式其实就是说,一个对象的组成可能有很多其他的对象一起组成的,比如说,一个对象的实现非常复杂,有很多的属性,而这些属性又是其他对象的引用,可能这些对象的引用又包括很多的对象引用。封装这些复杂性,就可以使用建造模式。
4.门面模式
这个模式个人感觉像是Service层的一个翻版。比如Dao我们定义了很多持久化方法,我们通过Service层将Dao的原子方法组成业务逻辑,再通过方法向上层提供服务。门面模式道理其实是一样的。
5.策略模式 这个模式是将行为的抽象,即当有几个类有相似的方法,将其中通用的部分都提取出来,从而使扩展更容易。 概念:创建一个能够根据所传递参数对象的不同而具有不同的行为的方法。 package org.sp.strategy; /** * 加法具体策略类 * @author Jeelon * */ public class Addition extends Operation { @Override public float parameter(float a, float b) { return a+b; } } package org.sp.strategy; /** * 除法具体策略类 * @author Jeelon * */ public class Division extends Operation { @Override public float parameter(float a, float b) { return a/b; } } package org.sp.strategy; /** * 乘法具体策略类 * @author Jeelon * */ public class Multiplication extends Operation{ @Override public float parameter(float a, float b) { return a*b; } } package org.sp.strategy; /** * 减法具体策略类 * @author Jeelon * */ public class Subtration extends Operation { @Override public float parameter(float a, float b) { return a-b; } } package org.sp.strategy; /** * 抽象策略类也可以使用接口来代替 * @author Jeelon * */ public abstract class Operation { public abstract float parameter(float a, float b); } package org.sp.strategy; /** * 策略环境类 * @author Jeelon * */ public class Condition { public static final Addition add = new Addition(); public static final Subtration sub = new Subtration(); public static final Multiplication mul = new Multiplication(); public static final Division div = new Division(); } package org.sp.strategy; /** * 测试客户端 * @author Jeelon * */ public class Client { public static void main(String[] args) { float a = 100; float b = 25; System.out.println(Condition.div.parameter(a, b)); } }
相关文章推荐
- Java设计模式16:常用设计模式之观察者模式(行为型模式)
- java 常用设计模式
- Java常用类库--观察者设计模式( Observable类Observer接口)
- java 常用十种设计模式示例归纳 | 已打包请带走
- java几种常用设计模式简单示例
- 常用Java设计模式系列(4)- 适配器模式
- java几种常用设计模式简单示例
- java常用设计模式
- Java23种常用设计模式
- 六种常用的设计模式java实现(一)工厂模式
- JAVA常用设计模式
- Java常用23种设计模式
- java几种常用设计模式简单示例
- Java常用设计模式——适配器模式
- Java常用的几种设计模式
- Java常用设计模式
- Java中常用的设计模式
- java常用设计模式
- Java常用的设计模式
- Java常用GoF设计模式之一单例模式