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

      

      

      

  • 相关阅读:
    一周最新示例代码回顾 (4/23–4/29)
    优酷的投票
    Google API获取用户信息
    CPU性能分析
    有意思的排序算法快速排序
    http响应LastModified和ETag以及asp.net web api实现
    java/C#多态漫谈
    有意思的排序算法插入排序
    [Architecture Pattern] Repository
    50个jQuery代码段帮你成为更出色的JS开发者
  • 原文地址:https://www.cnblogs.com/imfjj/p/6110928.html
Copyright © 2011-2022 走看看