zoukankan      html  css  js  c++  java
  • Java设计模式(二)

    行为类模式

    策略模式( 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)

  • 相关阅读:
    php 显示文件 与Windows文件名排序一致
    pip3 install uwsgi 报错
    centos7 安装mysql 5.7
    Win7 开始菜单搜索添加快捷方式
    centos7.7 clamav 查杀病毒
    CentOS7.x 默认php版本与php7.4共存
    centos6.5 yum安装redis
    centos6 yum安装mysql 5.6 (完整版)
    解决phpmyadmin出现: Maximum execution time of 300
    Castle Windsor 使MVC Controller能够使用依赖注入
  • 原文地址:https://www.cnblogs.com/hitszbw/p/9191451.html
Copyright © 2011-2022 走看看