zoukankan      html  css  js  c++  java
  • 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 添加一个判断就够啦,这就是工厂模式,大家都学会了吗?

      

      

      

  • 相关阅读:
    怎么把自己电脑上的文件传到服务器本地上
    查看hive中某个表中的数据、表结构及所在路径
    python2.7读汉字的时候出现乱码,如何解决
    如何连接服务器客户端
    java常用问题排查工具
    netty源码分析之一:server的启动
    java AQS 一:
    netty源码分析之二:accept请求
    java Resource
    二:基础概述netty
  • 原文地址:https://www.cnblogs.com/imfjj/p/6110928.html
Copyright © 2011-2022 走看看