simplefactory简单工厂模式
简单工厂模式概述
又叫静态工厂方法模式,它定义一个具体的工厂类负责一些类的实例
优点
客户端不需要在负责对象的创建,从而明确了各个类的职责
缺点:
这个静态工厂类负责所有对象的创建,如果有新的对象增加,或者某
些对象的而创建方式不通风,就需要不断的修改工厂类,不利于后期的维护
package com.simplafactory; public interface Animal {
public void eat();
}
package com.simplafactory; public class Cat implements Animal { @Override
public void eat() {
System.out.println("猫吃鱼");
} }
package com.simplafactory; public class Dog implements Animal { @Override
public void eat() {
System.out.println("狗吃肉");
} }
package com.simplafactory; public class AnimalDemo {
public static void main(String[] args) {
// Dog d=new Dog();
// Cat c=new Cat();
//
// c.eat();
// d.eat();
//
// System.out.println("==============="); // Animal d=new Dog();
// Animal c=new Cat();
// d.eat();
// c.eat();
// AnimalFactory af=new AnimalFactory();
// Dog d=af.createDog();
// Cat c=af.createCat();
// d.eat();
// c.eat();
AnimalFactory af=new AnimalFactory();
Dog d=(Dog) af.createAnimal("dog");
Cat c=(Cat) af.createAnimal("cat");
if(d!=null){
d.eat();
}
if(c!=null){
c.eat();
} }
}
package com.simplafactory; public class AnimalFactory {
// public Dog createDog(){
// return new Dog();
// }
//
// public Cat createCat(){
// return new Cat();
// } public Animal createAnimal(String name){
if("cat".equalsIgnoreCase(name)){
return new Cat();
}
else if("dog".equalsIgnoreCase(name)){
return new Dog();
}
return null;
}
}
simplefactory简单工厂模式的更多相关文章
- 设计模式(二)——Java简单工厂模式
简单工厂模式 案例: 披萨的项目(要便于披萨种类的扩展,要便于维护) 1)披萨的种类很多(比如 GreekPizz.CheesePizz 等) 2)披萨的制作有 prepare,bake, cut, ...
- 设计模式(3)--SimpleFactory( [1] 简单工厂模式)--创建型
1.模式定义: 简单工厂模式是类的创建模式,又叫做静态工厂方法(Static Factory Method)模式.简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例. 2.模式特点: 实现方式的 ...
- Java设计模式 -- 简单工厂模式(SimpleFactory)
一.什么是简单工厂模式 简单工厂模式属于类的创建型模式,又叫做静态工厂方法模式.通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类. 二.模式中包含的角色及其职责 1.工厂(C ...
- 简单工厂模式 SimpleFactory
简单工厂模式 SimpleFactory 1.1什么是简单工厂设计模式 简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模 ...
- IOS设计模式浅析之简单工厂模式(SimpleFactory)
概述 首先说明一下,简单工厂模式不属于23种GOF设计模式之一.它也称作静态工厂方法模式,是工厂方法模式的特殊实现.这里对简单工厂模式进行介绍,是为本系列后面的工厂方法和抽象工厂模式做一个引子. 定义 ...
- 01简单工厂模式SimpleFactory
一.什么是简单工厂模式 简单工厂模式属于类的创建型模式,又叫做静态 工厂方法模式.通过专门定义一个类来负责创建 其他类的实例,被创建的实例通常都具有共同的 父类. 二.模式中包含的角色及其职责 1.工 ...
- 设计模式-简单工厂模式(SimpleFactory)
简单工厂模式又叫静态工厂模式,,通过定义一个类(FruitFactory)来负责创建其他类的实例,被创建的实例通常都具有相同的父类(Fruit). 角色和职责: 1.工厂角色(Factory)-Fru ...
- C#设计模式之简单工厂模式(Simple Factory)
1. 概述 简单工厂模式就是将一个类的实例化交给一个静态工厂来执行. 2. 使用频率 中 3. 模式结构 3.1 机构图 3.2 模式中的角色 Product:抽象类,把具体产品类公共的代码进行抽象和 ...
- 设计模式之简单工厂模式Simple Factory(四创建型)
工厂模式简介. 工厂模式专门负责将大量有共同接口的类实例化 工厂模式可以动态决定将哪一个类实例化,不必事先知道每次要实例化哪一个类. 工厂模式有三种形态: 1.简单工厂模式Simple Factory ...
随机推荐
- DevSecOps 简介(一)
DevOps,或者说企业应用开发团队和系统运营团队的合作,已经成为一个时髦的 IT 话题.这一新的运营模式往往与敏捷式软件开发方法并举,同时还会利用云计算的可扩展性--这一切,都是为了使企业更加灵活, ...
- .bash_profile和.bashrc的区别(如何设置生效)
/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置. /etc/bashrc:为每一个 ...
- POJ 1144 Network(Tarjan)
题目链接 题意 : 找出割点个数. 思路 : Tarjan缩点,u是割点的充要条件是:u要么是具有两个以上子女的深度优先生成树的根,要么不是根,而有一个子女v满足low[v]>=dfn[u]. ...
- ExtJs之Element.select函数
<!DOCTYPE html> <html> <head> <title>ExtJs</title> <meta http-equiv ...
- hdu 4462(状态压缩)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4462 思路:由于数据不大,可以直接将所有的状态表示出来,然后枚举,判断能否将方格全部覆盖. http: ...
- ECharts案例教程1
原文:http://blog.csdn.net/whqet/article/details/42703973 简介 ECharts,缩写来自Enterprise Charts,商业级数据图表,是百度的 ...
- 【hdu2815-Mod Tree】高次同余方程-拓展BadyStepGaintStep
http://acm.hdu.edu.cn/showproblem.php?pid=2815 题意:裸题... 关于拓展BSGS的详细解释我写了一篇博文:http://www.cnblogs.com/ ...
- C#遍历打印机
#region 获取本机默认打印机名称 ArrayList al1=new ArrayLIst(); private static PrintDocument fPrintDocument = new ...
- 546A. Soldier and Bananas
等差数列: 以k为首相,k为公差,w个数量的和与n的大小关系 输出max(sum-0,0) Java程序 import java.util.Scanner; public class A546 ...
- jsp中如何用jstl实现if(){}else if(){}else{}
<c:choose> <c:when test="${条件}"> 情况1........... </c:when> <c:when tes ...