java设计模式之简单工厂模式详解
简单工厂模式:由一个工厂对象决定创建出哪一种类的实例。
1.抽象类
public abstract class People { public abstract void doSth(); }
2.具体类
public class Man extends People{ @Override public void doSth() { System.out.println("I'm a man,I'm coding."); } }
3.具体类
public class Girl extends People{ @Override public void doSth() { System.out.println("I'm a girl,I'm eating."); } }
4.工厂
public class PeopleFactory { public static People getSpecificPeople(String type){ if("A-Man".equals(type)){ return new Man(); }else if("B-Girl".equals(type)){ return new Girl(); }else { return null; } } }
5.测试代码
public class PeopleTestDemo { public static void main(String[] args) { People man = PeopleFactory.getSpecificPeople("A-Man"); Objects.requireNonNull(man,"对象不存在."); man.doSth(); People girl = PeopleFactory.getSpecificPeople("B-Girl"); Objects.requireNonNull(girl,"对象不存在"); girl.doSth(); People foodie = PeopleFactory.getSpecificPeople("Foodie"); Objects.requireNonNull(foodie,"对象不存在"); foodie.doSth(); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
java设计模式之简单工厂模式
在编写一个计算器程序时,可以将业务逻辑和显示分离,业务逻辑封装为一个类(封装):如果要新添加一种运算,可以先创建一个Operation的基类,然后各种运算从Operation类继承,并实现GetResult()虚函数,这时添加新的运算只需要派生一个新的类,即不需要之前的运算参与编译.如何让计算器知道我是希望使用哪种运算呢?应该考虑单独的类来做这个创造实例的过程,这就是工厂.创建一个OperationFactory类,传入参数,函数createOperate就可以实例化出合适的对象. Java代码
-
浅析Java设计模式编程中的单例模式和简单工厂模式
单例模式 动机 有时候只有一个类的实例是很重要的.比如,一个系统应该只有一个窗口管理实例. 单例模式是最简单设计模式:类负责实例化自己,确保只有一个实例,并且提供一个访问这个实例的入口. 目的 1. 确保只有一个实例被创建. 2. 提供访问这个实例的入口. 使用final确保被创建一次,private的构造函数确保不被实例化.public的getInstance方法确保外部能够访问.下面是饿汉模式: public class Singleton { private static final Si
-
java设计模式学习之简单工厂模式
简单工厂模式 简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一.简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例.简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现. 利用简单工厂模式设计一个计算器. 1:创建一个运算的类 package EasyFactoryModel; abstract class Operation { public double num1=0;
-
java设计模式之简单工厂模式简述
简单工厂模式的概念 就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建.简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例. 简单工厂模式的UML图 简单工厂模式代码 学习简单工厂模式的时候我用的是一个与人类有相关的例子.人类在世界分为男人和女人,首先定义一个Human产品的抽象接口 /** * This is factory patter package */ package com.roc.factory; /** *
-
以Java代码为例讲解设计模式中的简单工厂模式
1. 简单工厂模式简介 简单工厂模式(Simple Factory),又被称为"静态工厂方法模式".它属于"创建模式"(创建对象的模式),并且是"工厂方法"模式的一种特殊实现. 通常,我们利用简单工厂模式来进行类的创建.例如,获取线程池对象,就是通过简单工厂模式来实现的.它的结构图如下所示: 工厂:工厂是简单工厂模式的核心,提供了对外接口.客户端或其它程序要获取Product对象,都是通过Factory的接口来获取的. 抽象产品:抽象产品是(许多
-
java设计模式之简单工厂模式详解
简单工厂模式:由一个工厂对象决定创建出哪一种类的实例. 1.抽象类 public abstract class People { public abstract void doSth(); } 2.具体类 public class Man extends People{ @Override public void doSth() { System.out.println("I'm a man,I'm coding."); } } 3.具体类 public class Girl exte
-
Java设计模式之抽象工厂模式详解
一.什么是抽象工厂模式 为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类,这称之为抽象工厂模式(Abstract Factory).我们并不关心零件的具体实现,而是只关心接口(API).我们仅使用该接口(API)将零件组装称为产品. 二.示例程序 1.抽象的零件:Item类 package com.as.module.abstractfactory; /** * 抽象的零件 * @author Andy * @date 2021/4/29 23:16 */ public
-
Java设计模式之静态工厂模式详解
本文实例讲述了Java设计模式之静态工厂模式.分享给大家供大家参考,具体如下: 静态工厂模式(static factory)也叫简单工厂模式. 涉及到3个角色:工厂类角色,抽象产品类角色和具体产品类角色. 抽象产品类可以使用接口或者父类来描述产品对象的行为特征. 具体产品类就是某一具体的对象. 静态工厂类有一个静态的方法,含有判断逻辑,决定要创建哪一种具体的产品对象. 其设计模式如下: 抽象产品类 IProduct package org.test.design.sf; public inte
-
php设计模式之简单工厂模式详解
本文以实例形式较为详细的介绍了PHP设计模式的简单工厂模式,对于进行PHP程序设计来说有很好的借鉴作用.具体如下: 一.概念 简单工厂模式 [静态工厂方法模式](Static Factory Method) 是类的创建模式 工厂模式的几种形态: 1.简单工厂模式(Simple Factory)又叫做 静态工厂方法模式(Static Factory Method) 2.工厂方法模式(Factory Method)又叫做 多态性工厂模式(Polymorphic Factory) 3.抽象工厂模式(A
-
java设计模式--三种工厂模式详解
目录 简单工厂 代码: 1.产品接口 2.产品接口实现子类 3.简单工厂类 4.调用工厂 5.测试 工厂方法 代码: 1.工厂接口 2.工厂实现子类 3.产品接口 4.产品实现子类 5.调用 6.测试 1.产品接口 2.产品抽象子类-普通产品 抽象工厂 3.1产品抽象子类-魔法产品 4.工厂接口 5.工厂实现子类-普通工厂 6.工厂实现子类-魔法工厂 7.调用 8.测试 总结 简单工厂 简单工厂模式是属于创建型模式,是工厂模式的一种.简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例.定义
-
Java设计模式之职责链模式详解
目录 前言 一.职责链模式的定义与特点 二.职责链模式的结构 三.职责链模式案例 前言 本文简单介绍了设计模式的一种--职责链模式 一.职责链模式的定义与特点 定义: 为了避免请求发送者与多个请求处理者耦合在一起,于是将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链:当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止. 比如我们的审批制度,低等级的审批不了的,交给上一级审批,依次类推,直到审批结束. 在责任链模式中,客户只需要将请求发送到责任链上即可,无须关心请求的处
-
Java设计模式中的外观模式详解
目录 模式介绍 UML类图 外观模式案例: 外观模式的注意事项和细节 模式介绍 外观模式(Facade) ,也叫“过程模式:外观模式为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用. 外观模式通过定义一个一致的接口,用以屏蔽内部子系统的细节,使得调用端只需跟这个接口发生调用,而无需关心这个子系统的内部细节. UML类图 类图解析: Facade:为调用端提供统一的调用接口,外观类知道哪些子系统负责处理请求,从而将调用端的请求代理给适当子系统对象
-
Java设计模式中的门面模式详解
目录 门面模式 概述 应用场景 目的 优缺点 主要角色 门面模式的基本使用 创建子系统角色 创建外观角色 客户端调用 门面模式实现商城下单 库存系统 支付系统 物流系统 入口系统 客户端调用 门面模式 概述 门面模式(Facade Pattern)又叫外观模式,属于结构性模式. 它提供一个统一的接口去访问多个子系统的多个不同的接口,它为子系统中的一组接口提供一个统一的高层接口.使得子系统更容易使用. 客户端不需要知道系统内部的复杂联系,只需定义系统的入口.即在客户端和复杂系统之间再加一层,这一层
-
Java设计模式中责任链模式详解
目录 1.责任链设计模式的定义 2.责任链设计模式的优点与不足 3.责任链设计模式的实现思路 4.责任链设计模式应用实例 5.责任链设计模式应用场景 编程是一门艺术,大批量的改动显然是非常丑陋的做法,用心的琢磨写的代码让它变的更美观. 在现实生活中,一个事件需要经过多个对象处理是很常见的场景.例如,采购审批流程.请假流程等.公司员工请假,可批假的领导有部门负责人.副总经理.总经理等,但每个领导能批准的天数不同,员工必须根据需要请假的天数去找不同的领导签名,也就是说员工必须记住每个领导的姓名.电话
随机推荐
- JS JQUERY实现滚动条自动滚到底的方法
- Angular 2.x学习教程之结构指令详解
- ASP.NET web.config中 数据库连接字符串加密解密
- ASP.NET MVC制作404跳转实例(非302和200)
- PHP模板引擎Smarty的缓存使用总结
- c# 在windows服务中 使用定时器实例代码
- JavaScript中的事件处理
- 谈谈我对docker的理解
- JS中call/apply、arguments、undefined/null方法详解
- KB967723造成MySQL频繁无法连接
- PHP 反射(Reflection)使用实例
- 利用Android中BitmapShader制作自带边框的圆形头像
- PHP调试函数和日志记录函数分享
- 利用rsync自动备份 完全配置方法 增加了ip限制
- Java中三种简单注解介绍和代码实例
- php reset() 函数指针指向数组中的第一个元素并输出实例代码
- 详解webpack之scss和postcss-loader的配置
- vue2.0 + element UI 中 el-table 数据导出Excel的方法
- php合并数组并保留键值的实现方法
- localstorage实现带过期时间的缓存功能