设计模式_Java_简单工厂模式概述和使用
来源:互联网 发布:打字练习软件 编辑:程序博客网 时间:2024/06/18 04:17
- 简单工厂模式概述
- 又叫静态工厂方法模式,它定义一个具体的工厂类负责创建一些类的实例
- 优点
- 客户端不需要在负责对象的创建,从而明确了各个类的职责
- 缺点
- 这个静态工厂类负责所有对象的创建,如果有新的对象增加,或者某些对象的创建方式不同,就需要不断的修改工厂类,不利于后期的维护
- 案例演示
- 动物抽象类:public abstract Animal { public abstract void eat(); }
- 具体狗类:public class Dog extends Animal {}
- 具体猫类:public class Cat extends Animal {}
- 开始,在测试类中每个具体的内容自己创建对象,但是,创建对象的工作如果比较麻烦,就需要有人专门做这个事情,所以就知道了一个专门的类来创建对象。
Animal类
package com.soar.simplefactory;public abstract class Animal { public abstract void eat();}
Cat类
package com.soar.simplefactory;public class Cat extends Animal { @Override public void eat() { System.out.println("猫吃鱼"); }}
Dog类
package com.soar.simplefactory;public class Dog extends Animal { @Override public void eat() { System.out.println("狗吃肉"); }}
AnimalFactory类
package com.soar.simplefactory;public class AnimalFactory { /*public static Dog createDog(){ return new Dog(); } public static Cat createCat(){ return new Cat(); }*/ //发现方法会定义很多,复用性太差 //改进 public static Animal createAnimal(String name){ if("dog".equals(name)){ return new Dog(); }else if("cat".equals(name)){ return new Cat(); }else{ return null; } }}
Test类
package com.soar.simplefactory;public class Test { public static void main(String[] args) { //Dog d = AnimalFactory.createDog(); Dog d = (Dog) AnimalFactory.createAnimal("dog"); d.eat(); //狗吃肉 Cat c = (Cat) AnimalFactory.createAnimal("cat"); c.eat(); //猫吃鱼 }}
阅读全文
0 0
- 设计模式_Java_简单工厂模式概述和使用
- 设计模式_Java_工厂方法模式的概述和使用
- 设计模式_简单工厂模式概述和使用
- 设计模式-简单工厂模式概述和使用-接口
- 设计模式_工厂方法模式的概述和使用)
- 设计模式-工厂方法模式的概述和使用-接口
- 设计模式和原则:简单工厂模式
- 设计模式学习之简单工厂模式和工厂模式
- [转载] 设计模式_Java_
- 设计模式笔记1 - 简单工厂 和 工厂模式理解以及使用
- 简单工厂设计模式
- 设计模式-----简单工厂
- 简单工厂设计模式
- 设计模式:简单工厂
- 设计模式 - 简单工厂
- 设计模式 简单工厂
- 【设计模式】【简单工厂】
- 简单工厂设计模式
- 【082】深度学习读书笔记:P24奇异方阵的两种定义
- 【剑指offer】题65:滑动窗口最大值
- ubuntu 16.04 火狐浏览器-flash_player
- Demo框架图
- Spring+JPA+druid+hibernate配置
- 设计模式_Java_简单工厂模式概述和使用
- A byte of python笔记
- 数据库的锁,事务和事务隔离
- 分页的实现(使用js)
- EU4-64: Rules and regulations
- 【NOIP2017模拟9.3A组】摘果子
- OA系统升级的经验分享,这是一个升华的过程,有痛苦有欢乐。文章转至麦枫网
- NP=P?
- HDU 4763 Theme Section【KMP的next数组练习】