spring学习笔记(3.20)

本文通过具体示例介绍工厂模式的应用,包括单例模式和多态的使用,并演示如何通过UserManager类调用不同的UserDao实现存储实例,展示了Spring框架中接口实现的配置方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过自己写例子理解工厂模式

测试工厂类,了解AOP,IOC机制.
通过UserDao的接口来调用不同的方法来存储实例.
首先有UserDao接口.有各种实现类.
其次有一个管理类UserMangaer,来实现接口中各种方法的使用.
再次有一个Test类来测试,通过自己创建UserMangaer来调用UserDao接口中的方法
用到了多态,单例模式,跟工厂模式.
Spring就是把各种接口的实现放入到配置里,然后根据情况来调用.

 

 

package zhc.love.dj.Dao;

public interface UserDao {
	public void save(String name ,String password);
}

    

package zhc.love.dj.Dao;

public class UserDaoFactory {
  
	private static UserDaoFactory instance = new UserDaoFactory();
	
	private UserDaoFactory(){
		
	}
	
	public static UserDaoFactory getInstance(){
		return instance ;
	}
	
	public UserDao CreatUserDao(){
		return new UserDaoMysqlImp();
	}
}

 

 

package zhc.love.dj.Dao;

public class UserDaoMysqlImp implements UserDao {

	public void save(String name, String password) {
		System.out.println("----------MySql.save()------------");
	}

}

 

     //通过这个类来调用Userdao接口.这个类为工厂类

package zhc.love.dj.Maneger;

import zhc.love.dj.Dao.UserDao;
import zhc.love.dj.Dao.UserDaoFactory;

public class UserMangaer {
	
	UserDao userdao ;
	//单例模式的三点要素 ,线程不安全的.
	//1:私有的静态的实例.
	private static UserMangaer instance = new UserMangaer();
	//2.私有构造方法
	private  UserMangaer(){
		userdao = UserDaoFactory.getInstance().CreatUserDao() ; 
	}
	//共有的静态方法.
	public static UserMangaer  getInstance(){
		return instance ;
	}
	public void save(String name, String password) {
		userdao.save(name, password);
	}
	
}

 

package zhc.love.dj.Dao;

public class UserDaoMSSqlImp implements UserDao {

	public void save(String name, String password) {
		System.out.println("----------MSSql.save()------------");
	}

}

  

package zhc.love.dj.test;

import zhc.love.dj.Maneger.UserMangaer;

public class Test {
	public static void main(String[] args){
		UserMangaer.getInstance().save("zhangchao", "loveduanjing");
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值