用spring获取bean违例
1:定义工程接口
package com.spdx.app.proxy;
public interface IBeanFactory
{
public Object createBean(String beanName);
}
2:定义抽象工程,实现单例
public abstract class AbstractBeanFactory implements IBeanFactory
{
private static String className = "com.spdx.app.proxy.SimpleBeanFactory";
private static Object lock = new Object();
private static AbstractBeanFactory instance;
public static AbstractBeanFactory getInstance()
{
if (null == instance)
{
synchronized (lock)
{
if (null == instance)
{
try
{
Class clazz = Class.forName(className);
instance = (AbstractBeanFactory) clazz.newInstance();
}
catch (ClassNotFoundException e)
{
}
catch (InstantiationException e)
{
}
catch (IllegalAccessException e)
{
}
}
}
}
return instance;
}
}
3:工厂实现
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
public class SimpleBeanFactory extends AbstractBeanFactory
{
private ApplicationContext application = null;
private Resource resource = null;
private BeanFactory beanFactory = null;
public SimpleBeanFactory()
{
application = new ClassPathXmlApplicationContext(new String[]{"applicationContext.xml"});
application = new FileSystemXmlApplicationContext("src/applicationContext.xml");
//resource = new ClassPathResource("applicationContext.xml");
//beanFactory = new XmlBeanFactory(resource);
System.out.println("init application...");
}
public Object createBean(String beanName)
{
return application.getBean(beanName);
//return beanFactory.getBean(beanName);
}
}
分享到:
相关推荐
Java模式 Java语言的接口 抽象类 里氏代换原则 依赖倒转原则 接口隔离原则 合成/聚合复用原则 ...简单的工厂 工厂的方法 抽象工程 单例(singleton) 原始模型 适配器 装饰 代理 门面模式 不变模式 策略模式 模板方法
Java模式 Java语言的接口 抽象类 里氏代换原则 依赖倒转原则 接口隔离原则 合成/聚合复用原则 ...简单的工厂 工厂的方法 抽象工程 单例(singleton) 原始模型 适配器 装饰 代理 门面模式 不变模式 策略模式 模板方法
Java模式 Java语言的接口 抽象类 里氏代换原则 依赖倒转原则 接口隔离原则 合成/聚合复用原则 ...简单的工厂 工厂的方法 抽象工程 单例(singleton) 原始模型 适配器 装饰 代理 门面模式 不变模式 策略模式 模板方法
设计模式是软件工程中的一种最佳实践,用于解决在软件开发过程中常见的问题,提供了一套可重用的解决方案。以下是对标题和描述中提及的设计模式的详细解释: 1. **简单工厂**:简单工厂模式是一种创建型设计模式,...
在本文中,我们将深入探讨三种工厂设计模式——简单工厂模式、抽象工厂模式和工厂方法模式,以及两种单例模式——饿汉单例模式和懒汉单例模式。这些模式都是面向对象设计中的重要组成部分,对于理解和构建可维护、可...
在软件工程领域中,**高内聚**与**低耦合**是衡量系统设计质量的重要标准。高内聚指的是一个模块内部的功能高度相关,即模块内的各个部分紧密地协同工作以完成特定任务。低耦合则意味着各个模块之间的依赖关系较弱,...
在软件工程中,抽象工厂模式经常用于框架和库的开发,它可以用来封装一系列相关或相互依赖的对象的创建,使得客户端代码可以在不关心具体实现的情况下使用这些对象。这样,当需要更换不同的产品族时,只需要替换对应...
在编程领域,设计模式是一种被广泛接受的解决常见问题的模板或最佳实践。Java作为一款广泛应用的面向对象的编程语言,其设计模式的应用...通过学习和熟练掌握这些设计模式,开发者能够更好地应对复杂软件工程的需求。
在软件工程领域,设计模式是解决常见问题的模板或最佳实践,它们被广泛应用于构建可扩展、可维护的系统。抽象工厂模式是设计模式中的一种,属于创建型模式,它提供了一个创建对象的接口,但允许子类决定实例化哪些类...
6. **与其他设计模式的比较**:可能会对比抽象工厂模式与单例模式、工厂方法模式等其他创建型模式,解释它们之间的区别和适用场合。 总之,"走进设计模式之抽象工厂"这篇博客深入探讨了抽象工厂模式的原理、实现...
抽象是软件工程中的核心概念之一,尤其是在C语言中,它通过函数、结构体和预处理器宏等机制实现。以下是一些关于C语言抽象的关键知识点: 1. **函数抽象**:函数是C语言中实现抽象的主要方式。通过将一系列操作封装...
设计模式是软件工程中的一种最佳实践,它们是解决常见编程问题的经验总结,为代码的可重用性、可维护性和可扩展性提供了指导。在给定的标题和描述中,我们关注的是两种重要的设计模式:工厂模式和单例模式。 **工厂...
本资料包包含的是四种重要的设计模式:抽象模式、工厂模式、代理模式和单例模式。 1. 抽象模式: 抽象模式是通过定义抽象类或接口来封装一系列具有相似行为的对象。在面向对象编程中,抽象类通常不被实例化,而是...
在VC环境下,你可以创建MFC(Microsoft Foundation Classes)工程,利用C++标准库和MFC库来实现工厂模式和单例模式。对于工厂模式,你可以在MFC应用程序的主框架类中使用工厂模式创建对象。对于单例模式,你可以在...
5. **软件设计原则**:包括模块化、抽象、信息隐藏、接口分离、开闭原则等,这些原则指导我们编写易于理解和修改的代码。 6. **软件构造**:编程语言的选择、编码规范的制定以及版本控制工具的使用都是软件构造阶段...
设计模式是软件工程中的一种最佳实践,它是在特定上下文中解决常见问题的模板或蓝图。设计模式并不是具体的代码,而是一种经验的总结,是解决特定设计问题的有效方法。本资源"设计模式抽象实现"旨在为初学者提供一个...
2-4 单例模式的实用工程技术——从单例到多例,应用系统缓存的实现原理 2-5 工厂模式的定义场景与实现——子类延迟实现父类功能的软件结构 2-6 工厂模式的实用工程技术——IOC容器与工厂模式的应用 2-7 抽象工厂的...
软件工程中还有几个重要的设计模式,包括单例模式、简单工厂模式、抽象工厂模式、生成器模式、建造模式、原型模式和桥接模式。 1. 单例模式:单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这...
最后,抽象编程还与软件工程的原则相吻合,如DRY(Don't Repeat Yourself)原则,鼓励避免重复的代码;KISS(Keep It Simple, Stupid)原则,强调保持代码简洁;以及YAGNI(You Aren't Gonna Need It)原则,提倡只...