动态代理

import java.lang.reflect.*;
//接口功能
interface Person {

    void giveMoney();
}
//实现功能
class Student implements Person {
	private String name;
	public Student(String name) {
		this.name = name;
	}
	public void giveMoney() {
		try {
			Thread.sleep(1000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		System.out.println(name + "上交班费10元");
	}
}
//运行时间
class MonitorUtil {
//	线程独立运行
	private static ThreadLocal<Long> t1 = new ThreadLocal<>();
//	开始计时
	public static void start() {
		t1.set(System.currentTimeMillis());
	}
//	结束计时
	public static void finish(String methodName) {
		long finishTime = System.currentTimeMillis();
		System.out.println(methodName + "方法耗时" + (finishTime = t1.get()) + "ms");
	}
}
/*
 * 动态代理标识
 * 实现动态代理接口invoke方法
 * InvocationHandler.invoke()方法可实现target引用类的实现方法
 */
class StuInvocationHandler<T> implements InvocationHandler {
	T target;	//被代理对象
//	构造方法
	public StuInvocationHandler(T target) {
		this.target = target;
	}
/**
 * proxy:代表动态代理对象(实现接口的类型)proxy
 * method:代表正在执行的方法
 * args:代表调方法时需要传入的参数
 */
	public Object invoke(Object proxy,Method method,Object[] args) throws Throwable {
		System.out.println("代理执行" + method.getName() + "方法");	//代理执行giveMoney方法
		
//		计算耗时
		MonitorUtil.start();
		Object result = method.invoke(target,args);
		MonitorUtil.finish(method.getName());
		
		return result;
	}
}
/**
 * 动态代理
 * 1、实例化被代理类
 * 2、实例化一个动态接口类型的代理类,并把要代理的类作为参数传入动态代理类中
 * 3、由包方法Proxy获取实现接口方法的类的对象
 * @author Administrator
 *
 */
public class TestDemo {
    public static void main(String[] args) throws Exception {
//    	创建一个实例对象,该对象是被代理的类
    	Person zs = new Student("张三");
//    	创建一个与代理对象相关联的InvocationHandler
    	InvocationHandler stuHandler = new StuInvocationHandler<Person>(zs);
//    	方法Proxy.newProxyInstance(接口类的加载器(用于定义代理类),代理类需要实现的接口,实现动态代理接口的对象(调用处理器))返回实现接口的对象
//    	猜测:反射stuHandler信息获取该类invoke(Object,Method,Object[])方法,获取实现Class<?>[]接口方法的对象的方法method和数据args并由invoke方法调用
    	Person stuProxy = (Person) Proxy.newProxyInstance(Person.class.getClassLoader(), new Class<?> []{Person.class}, stuHandler);
//    	代理执行缴费
    	stuProxy.giveMoney();
    }
} 
//面向对象的动态代理需要扩展包cglib

内容概要:本文详细探讨了机组组合优化模型的构建,旨在通过合理安排各类发电机组的启停计划和优化出力分配,实现电力系统在经济性和稳定性上的最佳平衡。文章首先介绍了电力系统的四大主要组件——传统火电机组、风电机组、光伏机组和储能系统的参数及运行特性。接着,围绕最小化系统总运行成本这一目标,设计了优化目标函数,并明确了包括功率平衡约束、机组出力上下限约束、风光发电功率约束、弃风弃光约束、爬坡速率约束、储能系统荷电状态约束、充放电功率约束和充放电互斥约束在内的多项约束条件。最后,文章列出了求解机组组合优化模型所需的关键变量,如传统机组的开停状态、机组出力、启停成本、风电光伏实际出力、弃风弃光比例及储能系统的充放电功率和荷电状态,以实现系统的经济调度和可再生能源的最大化利用。 适合人群:从事电力系统研究、规划和调度工作的工程师和技术人员,以及对电力系统优化感兴趣的科研人员。 使用场景及目标:①帮助电力系统工程师理解不同类型发电机组的特点及其对系统稳定性、经济性和环保性的影响;②为制定合理的电力系统调度策略提供理论依据和技术支持;③促进可再生能源的有效整合,提高电力系统的灵活性和可靠性。 其他说明:本文提供的模型和方法不仅适用于当前的电力系统,也可为未来含高比例可再生能源接入的电力系统提供参考。文中涉及的具体数学公式和参数设定为实际应用提供了详细的指导,有助于提升电力系统的运行效率和经济效益。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值