Spring设计模式_策略模式/其他

策略模式特性

  1.执行最终结果一样

  2.执行过程和执行逻辑不一样

  3.使用同一接口  

达到目的就可以了

Git地址

https://github.com/wujiachengSH/WjcStrategy

策略模式比较简单,直接看代码

1.首先来个接口

 package com.wjc.Strategy;

 import java.util.Date;

 public interface DateUtil {

     String getDate(Date date);

 }

2.随便来2个实现类

 package com.wjc.Strategy;

 import java.text.SimpleDateFormat;
import java.util.Date; public class YMDUtil implements DateUtil { @Override
public String getDate(Date date) {
SimpleDateFormat sdfd =new SimpleDateFormat("yyy-MM-dd");
return sdfd.format(date);
} }
 package com.wjc.Strategy;

 import java.text.SimpleDateFormat;
import java.util.Date; public class YMUtil implements DateUtil { @Override
public String getDate(Date date) {
SimpleDateFormat sdfd =new SimpleDateFormat("yyy-MM");
return sdfd.format(date);
} }

3.来个封装

 package com.wjc.Strategy;

 import java.util.Date;

 public class DateChange {

     private DateUtil dateUtil;

     public DateChange(DateUtil dateUtil) {
this.dateUtil = dateUtil;
} public String getDate(Date date) {
return dateUtil.getDate(date);
} }

4.测试一下

 package com.wjc.Strategy;

 import java.util.Date;

 public class Test {

     public static void main(String[] args) {

         Date date = new Date();
date.getTime(); DateChange dateChange = new DateChange(new YMDUtil());
System.out.println("YMD : " + dateChange.getDate(date)); DateChange dateChange2 = new DateChange(new YMUtil());
System.out.println("YM : " + dateChange2.getDate(date));
} }

Spring里只要的还有单例,委派,原型和模版模式,鉴于 发现菜鸟教程中相关说明非常完善,觉得暂停设计模式章节,开始源码分析

http://www.runoob.com/design-pattern/template-pattern.html  菜鸟地址,唉,大佬就是大佬,总结的比我好,比我完善的多

单例模式特性

  1.保证系统从启动到终止,只会产生一个实例

  2.当我们在应用中遇到功能性冲突的时候,需要使用单例模式

委派模式

  1.两个参与角色:委托人和被委托人

  2.委托人和被委托人在权利上是完全平等的(同一接口)

  3.委托人持有被委托人的引用

  4.不关心过程,只关心结果

  干活是你的(普通员工),功劳是我的(项目经理)

原型模式

  1.首先有一个原型

  2.数据内容相同,但对象实例不同(完全不同的内存地址)

模版模式

  1.执行流程固定,但中间步骤有细微差别

  2.可实现批量生产

上一篇:关于mysql(或MariaDB)中的用户账号格式


下一篇:java模拟表单上传文件,java通过模拟post方式提交表单实现图片上传功能实例