java重构方式

java重构方式这里只是简单例子,以动物方式,如何实现重构1、入口publicclassTestMain{@AutowiredprivateAnimalanimal;@Testpublicvo

大家好,又见面了,我是你们的朋友全栈君。

这里只是简单例子,以动物方式,如何实现重构

1、入口

<span role="heading" aria-level="2">java重构方式
<span role="heading" aria-level="2">java重构方式

public class TestMain {
    @Autowired
    private Animal animal;

    @Test
    public void animal(){
        animal.printAnimal();
    }
}

View Code

2、判断那个类的执行

<span role="heading" aria-level="2">java重构方式
<span role="heading" aria-level="2">java重构方式

@Service
public class Animal {
   @Autowired
   private AnimalFactory animalFactory;

   public void printAnimal(){
       IAnimal pag = animalFactory.getAnimal("pag");
       pag.isAnimal();
   }
}

View Code

3、创建一个工厂,返回不同的类

<span role="heading" aria-level="2">java重构方式
<span role="heading" aria-level="2">java重构方式

@Service
public class AnimalFactory {
    @Autowired
    private List<IAnimal> isAnimal;

    public IAnimal getAnimal(String animal){
        for(IAnimal iAnimal : isAnimal){
            if(iAnimal.isSupport(animal)){
                return iAnimal;
            }
        }
        throw new RuntimeException("没有该动物类型");
    }
}

View Code

4、所需要的接口

<span role="heading" aria-level="2">java重构方式
<span role="heading" aria-level="2">java重构方式

public interface IAnimal {
    public boolean isSupport(String adimalType);

    public void isAnimal();
}

View Code

5、执行类

<span role="heading" aria-level="2">java重构方式
<span role="heading" aria-level="2">java重构方式

public class Dog implements IAnimal {

    @Override
    public boolean isSupport(String adimalType) {
        return adimalType.equals("dog") ? true : false;
    }

    @Override
    public void isAnimal() {
        System.out.println("动物是狗!!!!");
    }
}

View Code

<span role="heading" aria-level="2">java重构方式
<span role="heading" aria-level="2">java重构方式

@Service
public class Pag implements IAnimal{

    @Override
    public boolean isSupport(String adimalType) {
        return adimalType.equals("pag") ? true : false;
    }

    @Override
    public void isAnimal() {
        System.out.println("动物是猪!!!!");
    }
}

View Code

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/155596.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vue(22)Vuex的安装与使用[通俗易懂]

    vue(22)Vuex的安装与使用[通俗易懂]前言每一个Vuex应用的核心就是store(仓库)。store基本上就是一个容器,它包含着你的应用中大部分的状态(state)。Vuex和单纯的全局对象有以下两点不同:Vuex的状态存

    2022年7月29日
    4
  • GPS模块开发详解(转)

    一、了解硬件我使用的GPS模块型号为UBX-M8030参看:UBX-M8030系列参看:UBX-M8030datasheet1、查看一下它的特性:多用途GNSS芯片,提供三种产品等级最多可并发接收3个GNSS(GPS、伽利略、GLONASS、北斗)行业领先的-167dBm导航灵敏度业界最低电流消耗在城市峡谷中具有绝佳的定位精度安全性和完整性保护支持所有…

    2022年4月4日
    29
  • Java知识体系最强总结(2021版)[通俗易懂]

    更新于2019-12-1510:38:00本人从事Java开发已多年,平时有记录问题解决方案和总结知识点的习惯,整理了一些有关Java的知识体系,这不是最终版,会不定期的更新。也算是记录自己在从事编程工作的成长足迹,通过博客可以促进博主与阅读者的共同进步,结交更多志同道合的朋友。特此分享给大家,本人见识有限,写的博客难免有错误或者疏忽的地方,还望各位大佬指点,在此表示感激不尽。文章目录…

    2022年4月6日
    47
  • Oracle 11g安装教程_oracle11g数据库教程

    Oracle 11g安装教程_oracle11g数据库教程11684小编花了一个多小时才把Oracle11g安装折腾好了,其中有些步骤可能很多人不知道怎么选择,本篇文章就为大家介绍下如何安装Oracle11g,11684小编折腾SQLDeveloper花了好长时间,总算搞定了。好了,先总结下安装步骤,希望给后面的朋友提高安装效率,11684分享过来!授权:免费软件类型:国产软件语言:简体中文大小:2.1GB日期:2016-03-23环境:Win…

    2022年9月21日
    0
  • .net 读书笔记

    好书不能只读一遍,这两天又翻看了一遍《你必须知道的.NET》,重温了下基础,重温了下经典,简单记录了下来。内存分配:CLR管理内存的区域,主要有三块,分别为:线程的堆栈,用于分配值类型实例。堆栈

    2021年12月23日
    40
  • 画中画广告..例

    画中画广告..例<!–画中画广告开始–><tableborder=0cellspacing=0cellpadding=0align=left><tr><td&gt

    2022年7月1日
    20

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号