黑马程序员——设计模式

本文主要探讨Java中的设计模式,包括其基本概念、重要性以及在实际开发中的应用。通过学习,读者将能够提升软件设计能力,更好地进行Java培训和项目开发。
摘要由CSDN通过智能技术生成

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

设计模式

一工厂设计模式
1、作用
工厂设计模式的作用:有一个专门用于生产对象的方法。
2、工厂设计模式的书写方法
创建一个框架用于根据产配置文件产生任意类型的对象。
步骤:
1、创建一个BufferReader读取配置文件。
2、根据读取到的完整类名通过forName(String s)创建Class对象
3、通过newInstance()获取Object对象
4、通过BufferedReader读取配置文件获取成员的名称和值
5、通过getDeclareField()获取成员变量
6、通过getType()判断成员变量的类型,并通过set(Obj,value)给对象成员变量赋值
3、工厂设计模式的代码
package it.heima.design;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.lang.reflect.Field;

//工厂设计模式,有一个专门用于生产对象的方法
public class FactoryDemo {
	public static void main(String[] args) throws Exception {
		Object obj=Factory.getInstance();
		System.out.println(obj);
	}
}

class Factory{
	public static Object getInstance() throws IOException, Exception{
		BufferedReader bufferedReader=new BufferedReader(new FileReader("E:\\JavaSE_WorkSpace\\AllTest\\src\\it\\heima\\design\\properties.txt"));
		String className=null;	//获取类名
		className=bufferedReader.readLine();	//读第一行获取类对象
		Class clazz=Class.forName(className);
		Object obj=clazz.newInstance();	//创建该类对象
		
		String line=null;	//给对象设置值
		while((line=bufferedReader.readLine())!=null){
			String[] datas=line.split("=");	//properties的内容都是键值对,用=分割
		
			//获取成员
			Field field=clazz.getDeclaredField(datas[0]);
			field.setAccessible(true);	//成员一般是私有的,要暴力反射
			if(field.getType()==int.class){	//获取成员类型,进行转换再复制
				field.set(obj, Integer.parseInt(datas[1]));
			}if(field.getType()==String.class){
				field.set(obj, datas[1]);
			}else if(field.getType()==boolean.class){
				field.setBoolean(obj, Boolean.valueOf(datas[1]));
			}
		}
		return obj;
	}
}

二、观察者设计模式
1、观察者设计模式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值