• java工厂模式


    (1)概念大白话:java工厂模式就是客户端(main函数)要创建对象觉得麻烦就让另外一个叫工厂的类帮它创建,然后自己每次要创建对象就叫工厂帮它弄,举个例子,在没有工厂这个“手下”时,客户端要创建一个红色衣服类 就new一个RedClothes 明天再来个 黄色衣服类YellowClothes又new了一次,不断添加的话可能就会在客户端(main函数)增加很多new对象的语句,为了让客户端爽一点,决定让这些事情叫工厂去管理,我们把这个做法就叫做工厂模式

    (2)例子:废话多了点,先跟我花一些时间创建一下几个类,具体代表什么都有看

     代码 最爽的client客户端

    package cs.test;
    
    public class Client {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
            ClothesFactory clothesFactory=new ClothesFactory();
    		ClothesInterfaces clothesInterfaces =clothesFactory.getByColor("yellow");
    		if(clothesInterfaces!=null)
    		{
    			clothesInterfaces.color();
    		}
    	}
    
    }

    手下ClothesFactory工厂


    package cs.test; public class ClothesFactory { public ClothesInterfaces getByColor(String color) { if("red".equals(color)) { return new RedClothes(); } else if("yellow".equals(color)) { return new YellowClothes(); } else return null; } }

    衣服接口,因为每个衣服都有相同特质

    package cs.test;
    
    /**
     * 这是一个衣服接口
     * @author hao
     *
     */
    public interface ClothesInterfaces {
    
    	//这是一个衣服颜色的方法
    	public void color();
    }

    红色衣服

    package cs.test;
    
    public class RedClothes implements ClothesInterfaces {
    
    	@Override
    	public void color() {
    		// TODO Auto-generated method stub
         System.out.println("这是一个红色衣服");
    	}
    
    }

    黄色衣服

    package cs.test;
    
    public class YellowClothes implements ClothesInterfaces {
    
    	@Override
    	public void color() {
    		// TODO Auto-generated method stub
    		System.out.println("这是一个黄色衣服");
    	}
    
    }
    

      

    我这里像工厂类ClothesFactory 写得有点简陋,有时间同学也可以完善一下,我主要是把思想说一下,这里的client要那个对象基本不用费太多心思,想要添加创建一个蓝色衣服类就写一个蓝色衣服类,然后在添加ClothesFactory 添加一个判断就够啦,这就是工厂模式,大家都学会了吗?

      

      

      

  • 相关阅读:
    追随自己的价值观:用研经理 Anne Diaz 职业探索之路
    语义化版本(SemVer)的范围
    git如何放弃所有本地修改
    将本地已有的一个项目上传到新建的git仓库的方法
    using supervisord to run lsyncd script
    sersync下载安装及配置(有演示示例)
    sersync+rsync原理及部署
    Rsync+sersync 实现数据实时同步
    在分屏浏览中并排使用两个 Mac App
    MacOS 安装 Astah Professional 7.2
  • 原文地址:https://www.cnblogs.com/imfjj/p/6110928.html
Copyright © 2020-2023  润新知