factory-method 太过爱你忘了你带给我的痛 2023-07-18 04:46 16阅读 0赞 **目录** 1、概述 2、示例 创建User类 创建 factory-method 类 spring配置 spring引导类 运行结果 -------------------- # 1、概述 # factory-method:通过工厂类创建Spring bean。两种方式:一种静态方法,一种动态方法。 # 2、示例 # ## 创建User类 ## package thinking.in.spring.boot.samples.spring5.bean; public class User { private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "User{" + "id=" + id + ", name='" + name + '\'' + '}'; } } ## 创建 factory-method 类 ## package thinking.in.spring.boot.samples.spring5.factorybean; import thinking.in.spring.boot.samples.spring5.bean.User; /** * 演示 factory-method */ public class UserFactory { public static User getStaticUser() throws Exception { User user = new User(); user.setId(100); user.setName("静态工厂方法创建User"); return user; } public User getDynamicUser() throws Exception { User user = new User(); user.setId(200); user.setName("动态工厂方法创建User"); return user; } } ## spring配置 ## <!-- 静态 factory-method 示例 --> <bean id="staticFactoryMethod" class="thinking.in.spring.boot.samples.spring5.factorybean.UserFactory" factory-method="getStaticUser" /> <!-- 动态 factory-method 示例 --> <bean id="userFactory" class="thinking.in.spring.boot.samples.spring5.factorybean.UserFactory" /> <bean id="dynamicFactoryMethod" factory-bean="userFactory" factory-method="getDynamicUser" /> ## spring引导类 ## package thinking.in.spring.boot.samples.spring5.bootstrap; import org.springframework.beans.factory.support.DefaultListableBeanFactory; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.core.io.ClassPathResource; import thinking.in.spring.boot.samples.spring5.customlabel.CustomLabel; import thinking.in.spring.boot.samples.spring5.bean.User; import thinking.in.spring.boot.samples.spring5.factorybean.UserFactoryBean; public class XmlBeanFactoryBootstrap { public static void main(String[] args) { DefaultListableBeanFactory defaultListableBeanFactory = new XmlBeanFactory(new ClassPathResource("application-context.xml")); /** * factory-method */ User staticUser = (User) defaultListableBeanFactory.getBean("staticFactoryMethod"); System.out.println("factory-method 实例化的User对象:" + staticUser); User dynamicUser = (User) defaultListableBeanFactory.getBean("dynamicFactoryMethod"); System.out.println("factory-method 实例化的User对象:" + dynamicUser); } } ## 运行结果 ## factory-method 实例化的User对象:User{id=100, name='静态工厂方法创建User'} factory-method 实例化的User对象:User{id=200, name='动态工厂方法创建User'}
相关 设计模式之交给子类_FactoryMethod模式_将实例生成交给子类 1、解释 1、将实例的生成交给子类 2、父类决定实例的生成方式,但并不决定所要生成的具体的类 工厂方法(Factory Method)模式的意义是 1、... àì夳堔傛蜴生んèń/ 2024年04月17日 05:45/ 0 赞/ 74 阅读
相关 【设计模式_4】FactoryMethod工厂方法 一、简介 以Template模板方法架构获取产生对象实例的工厂就是Factory Method Pattern。 父类:规定对象的创建方法,但不深入到较为具体的类名; 梦里梦外;/ 2022年10月06日 10:00/ 0 赞/ 144 阅读
相关 结合Android学设计模式--工厂方法(FactoryMethod) 简单工厂模式 简单工厂模式属于类的创建型模式,又叫做静态工厂方法模式。通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。 模式中包含的角色及其职责 清疚/ 2022年08月06日 14:19/ 0 赞/ 196 阅读
相关 设计模式--FactoryMethod模式 直接上代码: package framework; public abstract class Factory { public f àì夳堔傛蜴生んèń/ 2022年05月28日 11:59/ 0 赞/ 179 阅读
相关 设计模式——FactoryMethod模式 1. 引言 2. 普通工厂模式 2.1 Product类 2.2 Factory类 心已赠人/ 2022年05月16日 06:55/ 0 赞/ 167 阅读
相关 Design Pattern----03.Creational.FactoryMethod.Pattern (Delphi Sample) Intent Define an interface for creating an object, but let subclasses decide which 缺乏、安全感/ 2021年11月08日 18:31/ 0 赞/ 206 阅读
相关 设计模式--工厂方法模式(FactoryMethod) 工厂方法模式(FactoryMethod) 在现实生活中社会分工越来越细,越来越专业化。各种产品有专门的工厂生产,彻底告别了自给自足的小农经济时代,这大大缩短了产品的生产 Dear 丶/ 2021年09月30日 15:06/ 0 赞/ 307 阅读
还没有评论,来说两句吧...