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

      

      

      

  • 相关阅读:
    读取lotus85邮箱未读文档
    Lotus notes 通讯录的导入导出
    如果你发现vpuserinfo.nsf数据库损坏,如何修复?该数据
    如何从iNotes获得未读邮件数量
    NTKO文档控件常见报错信息集合
    页面缓存清除的方法
    通过Lotusscript代码从损坏的数据库中抽取数据
    如何将lotus 通讯簿导入到outlook 2003中
    怎样使用Lotus Domino实用程序(Updall, Compact, Fixup) 进行正常和异常维护。
    0301.Lotus Domino与Windows AD帐户同步和SSO
  • 原文地址:https://www.cnblogs.com/imfjj/p/6110928.html
Copyright © 2011-2022 走看看