码迷,mamicode.com
首页 > 编程语言 > 详细

Java设计模式(二)

时间:2018-06-16 22:36:43      阅读:282      评论:0      收藏:0      [点我收藏+]

标签:tor   模板方法   src   image   对象   text   种类型   子类   类的方法   

行为类模式

策略模式( Strategy)

在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。

在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。

技术分享图片

创建一个接口。

Strategy.java

1 public interface Strategy {
2    public int doOperation(int num1, int num2);
3 }

 

创建实现接口的实体类。

OperationAdd.java

1 public class OperationAdd implements Strategy{
2    @Override
3    public int doOperation(int num1, int num2) {
4       return num1 + num2;
5    }
6 }

创建 Context 类。

Context.java

public class Context {
   private Strategy strategy;

   public Context(Strategy strategy){
      this.strategy = strategy;
   }

   public int executeStrategy(int num1, int num2){
      return strategy.doOperation(num1, num2);
   }
}

使用 Context 来查看当它改变策略 Strategy 时的行为变化。

StrategyPatternDemo.java

1 public class StrategyPatternDemo {
2    public static void main(String[] args) {
3       Context context = new Context(new OperationAdd());        
4       System.out.println("10 + 5 = " + context.executeStrategy(10, 5));
5 }

 

模板模式(Template Method)

一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。

 

我们将创建一个定义操作的 Game 抽象类,其中,模板方法设置为 final,这样它就不会被重写。CricketFootball 是扩展了 Game 的实体类,它们重写了抽象类的方法。

TemplatePatternDemo,我们的演示类使用 Game 来演示模板模式的用法。

技术分享图片

迭代器模式(Iterator)

 

Java设计模式(二)

标签:tor   模板方法   src   image   对象   text   种类型   子类   类的方法   

原文地址:https://www.cnblogs.com/hitszbw/p/9191451.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!