《Factory》

《Factory》

<大纲>

介绍设计模式

介绍工厂模式

掌握工厂模式的项目应用

1.设计模式

  • 不隶属于软件工程行业,这个术语是在1990年代由Erich Gamma等人从建筑设计领域引入到计算机科学中来的。
  • 软件设计模式(Design pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。
  • 使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。
  • 是对面向对象设计中反复出现的问题的解决方案。
  • 设计模式通常描述了一组相互紧密作用的类与对象。设计模式提供一种讨论软件设计的公共语言,使得熟练设计者的设计经验可以被初学者和其他设计者掌握。
  • 模式原则
    • 开闭原则
    • 里氏代换原则
    • 合成复用原则
    • 依赖倒转原则
    • 接口隔离原则
    • 单一职责原则
    • 最小知识原则
  • 设计模式的分类
    • 创建型模式
    • 结构型模式
    • 行为型模式

2.工厂模式

  • 用于隐藏创建对象的细节
  • 模式核心:工厂类(Factory)
  • 可细分为简单工厂、工厂方法、抽象工厂

3.项目应用

  • Software.java

    package com.imooc.factory;
    
    import com.imooc.factory.i18n.I18N;
    import com.imooc.factory.i18n.I18NFactory;
    
    public class Software {
           
    	public static void main(String[] args) {
           
    		I18N i18n = I18NFactory.getI18NObject("spain");
    		System.out.println(i18n.getTitle());
    	}
    }
    
    
  • Chinese.java

    package com.imooc.factory.i18n;
    
    public class Chinese implements I18N{
           
    	public String getTitle() {
           
    		return "用户管理系统";
    	}
    }
    
    
  • Italian.java

    package com.imooc.factory.i18n;
    
    public class Italian  implements I18N{
           
    	public String getTitle() {
           
    		return "Sistema della direzione del personale";
    	}
    }
    
    
  • Spanish.java

    package com.imooc.factory.i18n;
    
    public class Spainish  implements I18N{
           
    	public String getTitle() {
           
    		return "Sistema de gesti��n del personal";
    	}
    }
    
    
  • I18N.java

    package com.imooc.factory.i18n;
    //Internationalization
    public interface I18N {
           
    	public String getTitle();
    }
    
    
  • I18NFactory.java

    package com.imooc.factory.i18n;
    
    public class I18NFactory {
           
    	//简单工厂
    	public static I18N getI18NObject(String area) {
           
    		if(area.equals("china")) {
           
    			return new Chinese();
    		}else if(area.equals("spain")) {
           
    			return new Spainish();
    		}else if(area.equals("italy")) {
           
    			return new Italian();
    		}else {
           
    			return null;
    		}
    	}
    }
    
    

你可能感兴趣的:(Java,EE期末复习,设计模式,java)