欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-12-10 08:43:58
策略模式特性 1.执行最终结果一样 2.执行过程和执行逻辑不一样 3.使用同一接口 达到目的就可以了 Git地址 https://github.com/wujiachengSH/WjcStrategy 策略模式比较简单,直接看代码 1.首先来个接口 2.随便来2个实现类 3.来个封装 4.测试一下 ......


策略模式特性

  1.执行最终结果一样

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

  3.使用同一接口  

达到目的就可以了

 

git地址 

https://github.com/wujiachengsh/wjcstrategy

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

1.首先来个接口

1 package com.wjc.strategy;
2 
3 import java.util.date;
4 
5 public interface dateutil {
6 
7     string getdate(date date);
8     
9 }

2.随便来2个实现类

 1 package com.wjc.strategy;
 2 
 3 import java.text.simpledateformat;
 4 import java.util.date;
 5 
 6 public class ymdutil implements dateutil {
 7 
 8     @override
 9     public string getdate(date date) {
10         simpledateformat sdfd =new simpledateformat("yyy-mm-dd");
11         return sdfd.format(date);
12     }
13 
14 }
 1 package com.wjc.strategy;
 2 
 3 import java.text.simpledateformat;
 4 import java.util.date;
 5 
 6 public class ymutil implements dateutil {
 7 
 8     @override
 9     public string getdate(date date) {
10         simpledateformat sdfd =new simpledateformat("yyy-mm");
11         return sdfd.format(date);
12     }
13 
14     
15 }

3.来个封装

 1 package com.wjc.strategy;
 2 
 3 import java.util.date;
 4 
 5 public class datechange {
 6 
 7     private dateutil dateutil;
 8     
 9     public datechange(dateutil dateutil) {
10         this.dateutil = dateutil;
11     }
12     
13     public string getdate(date date) {
14         return dateutil.getdate(date);
15     }
16     
17 }

4.测试一下

 1 package com.wjc.strategy;
 2 
 3 import java.util.date;
 4 
 5 public class test {
 6 
 7     public static void main(string[] args) {
 8         
 9         date date = new date();
10         date.gettime();
11         
12         datechange datechange = new datechange(new ymdutil());
13         system.out.println("ymd : " + datechange.getdate(date));
14         
15         datechange datechange2 = new datechange(new ymutil());
16         system.out.println("ym : " + datechange2.getdate(date));
17     }
18     
19 }

 

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

 

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

 

单例模式特性

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

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

委派模式

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

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

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

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

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

原型模式

  1.首先有一个原型

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

模版模式

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

  2.可实现批量生产