应用模板方法(抽象类)

模板方法模式(Templete Method):定义一个操作中的算法的骨架,而将一些可变部分的实现延迟到子类中。模板方法模式使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定的步骤。

例如:抽象类只去做一个权限检查的事情,至于其他事情,则交给子类去做

代码实现:

public class Test7 {public static void main(String[] args){UserManager userManager = new UserManager();userManager.check("admin","add");}
}
abstract class BaseManager{public void check(String user,String method){if("admin".equals(user)){execute(method);}else{System.out.println("你没有操作权限,请联系管理员");}}public abstract void execute(String method);
}
class UserManager extends BaseManager{@Overridepublic void execute(String method){if("add".equals(method)){System.out.println("你执行了添加操作");}else if("del".equals(method)){System.out.println("你执行了删除操作");}}
}

运行结果:

你执行了添加操作

策略设计(接口应用)

策略模式(Strategy Pattern):定义了一些列的算法,将每一种算法封装起来并可以相互替换使用,策略模式让算法独立于它的客户应用可独立发生变化

定义一个接口:

public interface Isave{void save();
}

两个实现类:

public class NetIsave implements Isave{@Overridepublic void save() {System.out.println("保存在网络上");}
}
public class HomeIsave implements Isave{@Overridepublic void save() {System.out.println("保存在家里");}
}

定义一个抽象类进行封装:

public abstract class BaseIsave{private Isave isave;public void setIsave(Isave isave) {this.isave= isave;}public Isave getIsave() {return this.getIsave();}public void add() {System.out.println("检查数据安全性");isave.save();}
}

我们需要使用,只需要去继承这个抽象类即可:

public class User extends BaseIsave{}

测试:

public class Test4 {public static void main(String[] args) {// 创建对象BaseIsave isave = new User();// 传入参数(接口的实例化对象)isave.setIsave(new HomeIsave());// 执行操作isave.add();}
}

抽象类应用模板方法模式和接口应用之策略设计模式相关推荐

  1. Java:抽象方法和抽象类,抽象类应用模板方法模式,接口及使用

    一.抽象类概念和作用 抽象类                 Java中可以定义没有方法体的方法,该方法由子类来具体实现.                 该没有方法体的方法我们称之为抽象方法,含有抽 ...

  2. 抽象类,模版模式和接口

    抽象类,模版模式和接口 抽象类 抽象类的特点 抽象类不可以被实例化 什么时候使用抽象类 抽象类和普通类的区别 抽象类的作用 模板模式 什么是模板模式 何时使用 优点 缺点 分析 类和类之间的耦合问题 ...

  3. java抽象类和模板模式_测试抽象类和模板方法模式

    java抽象类和模板模式 摘自Wikipedia,"模板方法定义了算法的程序框架. 子类可以覆盖一个或多个算法步骤,以允许不同的行为,同时确保仍然遵循总体算法." 通常,此模式由两 ...

  4. 测试抽象类和模板方法模式

    摘自Wikipedia,"模板方法定义了算法的程序框架. 子类可以覆盖一个或多个算法步骤,以允许不同的行为,同时确保仍然遵循总体算法." 通常,此模式由两个或多个类组成,一个是提供 ...

  5. 抽象类和模板方法模式

    抽象方法和抽象类 抽象类:用abstract修饰符修饰的类,如: public abstract class GeneralService {} 抽象方法:用abstract修饰符修饰的方法,抽象方法 ...

  6. 抽象类应用——模板方法模式

    2019独角兽企业重金招聘Python工程师标准>>> 模板方法模式(Templete Method):定义一个操作中的算法的骨架,而将一些可变部分的实现延迟到子类中.模板方法模式使 ...

  7. 设计模式之模板方法模式(Template Method)摘录

    23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而 ...

  8. Carson带你学设计模式:模板方法模式(Template Method)

    前言 今天Carson来全面总结最常用的设计模式 - 模板方法模式. Carson带你学设计模式系列文章 Carson带你学设计模式:这是一份全面 & 详细的设计模式学习指南 Carson带你 ...

  9. 继承的概念和实现 、 super关键字 、 Object常见方法、抽象类、接口、模板方法模式、成员内部类、匿名内部类

    这篇博客将会涉及到: 继承的概念和实现 super关键字 方法重写-Override Object常见方法 继承的概念: 生活中,继承的概念随处可见,继承需要符合的关系:is-a:父类更通用.子类更特 ...

  10. JAVA基础13-Java抽象方法、抽象类、抽象之模板方法模式

    文章目录 Java抽象方法和抽象类 抽象之模板方法模式 Java抽象方法和抽象类 抽象类: Java中可以定义没有方法体的方法,该方法由子类来具体实现.这个没有方法体的方法我们称之为抽象方法,含有抽象 ...

最新文章

  1. dedecms vdimgck.php,织梦dedecms后台验证码图片不显示解决方案
  2. smoteenn算法_类别不平衡问题之SMOTE算法(Python imblearn极简实现)
  3. mqtt实例 php_php--mqtt实现推送
  4. Proguard源码分析(五) ConfigurationParser.keep参数
  5. 貂蝉被“送”给关羽过夜,第2天绝望自尽,他做了什么?
  6. java 代码块 作用_Java核心(三):代码块的作用
  7. JS之连接数组方法concat
  8. 星宿UI V1.1-后台优化激励视频判断插件
  9. 多进程使用wikimedia数据训练word2vec模型
  10. SPOJ GCDEX (数论)
  11. mysql处理varchar类型的between和and的时间问题少一天解决;
  12. 少年三国志鸿蒙符碎片在哪里,《少年三国志》最新萌新基础介绍4(名将+兵符)...
  13. nyoj-488 素数环 +nyoj -32 组合数 (搜索)
  14. 多少人受够了机器学习的锤,却连个决策树都说不出!
  15. hibernate中uuid和native等主键生成策略
  16. SPSS论证有这样的问题或错误?【SPSS 068期】
  17. Android gpuimage美颜滤镜,GPUImage图片美颜
  18. 一行Python代码让图形秒变「手绘风」
  19. 数字人正走进现实!AI大脑+高颜值
  20. MySQl安装与学习,内附SQlyog

热门文章

  1. javaMail简介(一)
  2. Python和C++交互
  3. ActionBarSherlock学习笔记 第一篇——部署
  4. Alpha通道的概念与功能
  5. linux shell pattern,shell 三剑客之 sed pattern 详解
  6. java基础中如何中断/阻塞线程和使用中断
  7. MySQL 函数:IF(expr,v1,v2) 判断
  8. 一份来自滴滴运维工程师的监控系统建设心得
  9. 项目经理如何管理团队
  10. 稳定婚姻问题和Gale-Shapley算法(转)