将类的属性类型设计为接口类型
我将开支类(Expense)设计如下:
public class Expense
{
private IAccount account;
private decimal amount;
public decimal Amount
{
get { return amount; }
set { amount = value; }
}
public IAccount Account
{
get { return account; }
set { account = value; }
}
public void Register()
{
account.Draw(amount);
}
}
这里Expense类中的Account属性我设计成了IAccount接口.原因是因为用于消费的帐户有很多种,比如CreditCard(信用卡)\Cash(现金)\DebitCard(借记卡)等等各种帐户:
public interface IAccount
{
string Name
{
get;
set;
}
decimal Amount
{
get;
set;
}
Individual Holder
{
get;
set;
}
Currncy Currncy
{
get;
set;
}
void Draw(decimal amount);
void Deposit(decimal amount);
void Transfer(IAccount account, decimal amount);
}
CreditCard类
public class CreditCard : IAccount
{
private Institution bank;
private string name;
private string number;
private Individual holder;
private decimal overdraft;
private decimal cashLimit;
private decimal interestRate;
private int repaymentDay;
private int billDay;
private DateTime startDate;
public DateTime StartDate
{
get { return startDate; }
set { startDate = value; }
}
private decimal amount;
private DateTime expiryMonth;
private Currncy currency;
#region IAccount 成员
public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
public decimal Amount
{
get
{
return amount;
}
set
{
amount = value;
}
}
public Individual Holder
{
get
{
return holder;
}
set
{
holder = value;
}
}
public Currncy Currncy
{
get
{
return currency;
}
set
{
currency = value;
}
}
public void Draw(decimal amount)
{
this.amount = this.amount - amount;
}
public void Deposit(decimal amount)
{
this.amount = this.amount + amount; ;
}
public void Transfer(IAccount account, decimal amount)
{
this.amount = this.amount - amount;
account.Deposit(amount);
}
#endregion
}
用这几个类来表达我想实现的功能是没有问题的,但是确没办法映射到关系型数据库.各个帐户类倒没有问题,现在主要的问题存在于Expense类的持久化.其中IAccount属性没办法用数据表表示,或都说很难表示.
请各位大侠帮忙解决@
相关推荐
掌握Go语言的柔性魔法:接口类型的合理运用
在Go语言的多彩世界中,接口类型以其独特的灵活性和强大的抽象能力,成为了构建高效、可维护代码的基石。本文将深入探讨Go语言接口类型的合理运用,从基础概念到高级应用,带你领略接口的魔力,解锁编程的新境界。Go语言的接口类型是其设计的核心之一,它允许我们以一种抽象的方式定义行为集合,而具体的实现则可以延迟到需要的时候。这种设计不仅提高了代码的可读性和可维护性,还极大地增强了代码的可扩展性。接口在Go语言中是一种类型,它定义了一组方法签名的集合。任何实现了这些方法的类型都被认为是实现了该接口。接口的声明不包含方法
新型电力系统下PI-LSTM物理信息长短期记忆神经网络的电力变压器状态评估方法(Matlab代码实现)
内容概要:本文提出了一种基于物理信息长短期记忆神经网络(PI-LSTM)的电力变压器状态评估方法,旨在适应新型电力系统对设备状态精准评估的需求。该方法将物理规律作为先验知识融入LSTM网络,通过构建包含变压器热力学、电气特性等物理约束的损失函数,提升模型在数据稀疏或噪声干扰下的泛化能力与解释性。利用Matlab实现了PI-LSTM模型的搭建、训练与验证,通过实际案例对比传统LSTM与PI-LSTM在状态参数预测精度、趋势拟合度及异常检测敏感性方面的表现,证明了所提方法的有效性和优越性,为变压器等关键电力设备的智能运维提供了新的技术路径。; 适合人群:从事电力系统、智能电网、设备状态监测与故障诊断研究的科研人员、工程技术人员及高校研究生。; 使用场景及目标:①应用于新型电力系统中电力变压器的健康状态评估与预测性维护;②为掌握物理信息神经网络(PINN)在电力系统中的融合应用提供Matlab实践范例; 阅读建议:建议读者结合Matlab代码深入理解PI-LSTM的网络结构设计、物理约束项的数学表达与代码实现细节,并尝试在不同工况数据集上复现和测试,以充分掌握其在提高模型物理一致性与预测可靠性方面的核心优势。
硕士复现燃料电池供氢系统建模及控制策略Simulink仿真(附带说明PPT+参考文献+复现模型+实物源码)
内容概要:本资源聚焦于燃料电池供氢系统的建模与控制策略研究,通过Simulink仿真平台实现系统动态行为的精确模拟与控制算法的验证。内容涵盖供氢系统的关键部件建模,如氢气供应管路、压力调节阀、储氢罐及燃料电池堆等,并针对系统响应滞后、压力波动等问题,设计并实现了先进的控制策略,例如基于反馈与前馈的复合控制、PID控制或模型预测控制(MPC),以确保氢气供给的稳定性与效率。配套提供的说明PPT详细阐述了建模思路与控制逻辑,参考文献为研究提供了理论支撑,而完整的复现模型与实物源码则极大地方便了学习者进行仿真复现与二次开发。; 适合人群:具备一定自动化、电气工程或能源动力系统背景,正在进行相关课题研究的研究生,以及从事氢能系统开发的工程技术人员。; 使用场景及目标:① 学习并掌握燃料电池供氢系统的工作原理与关键组件的数学建模方法;② 利用Simulink搭建复杂能源系统的仿真模型,并设计、调试与验证先进控制策略;③ 基于提供的完整资源包(PPT、模型、源码)进行科研复现,作为学位论文或学术研究的技术基础。; 阅读建议:学习者应结合说明PPT的理论讲解,逐步操作复现模型,重点关注控制模块的设计逻辑与参数整定过程。建议在理解现有模型的基础上,尝试修改工况参数或优化控制算法,以深化对系统动态特性的认识,从而将本资源作为开展自主创新研究的有效跳板。
考虑供电可靠性与算力柔性的数据中心园区源‑储‑荷一体化规划研究(Matlab代码实现)
内容概要:本研究聚焦于数据中心园区的能源系统规划,提出了一种综合考虑供电可靠性和算力柔性的源-储-荷一体化规划方法。该方法通过构建数学模型,将可再生能源发电、储能系统与数据中心的计算负载进行协同优化,旨在提升能源利用效率与系统运行的稳定性。研究引入算力柔性概念,即根据电力供应情况灵活调整计算任务的执行时间和强度,从而实现供需动态平衡。文中采用Matlab进行仿真建模与求解,验证了所提规划方案在降低能耗成本、提高供电可靠性和增强系统灵活性方面的有效性,为绿色、高效的数据中心能源管理提供了新的思路和技术支撑。; 适合人群:具备一定电力系统或能源管理背景,从事数据中心、新能源、智能电网等相关领域研究的研发人员和工程技术人员。; 使用场景及目标:①应用于数据中心园区的能源系统规划设计,优化可再生能源、储能与算力资源的配置;②实现数据中心在保障服务质量的同时,最大化消纳绿电、降低运营成本并提升应对电力波动的韧性。; 阅读建议:读者应结合Matlab代码,深入理解模型构建过程,重点关注目标函数的设计、约束条件的设定以及算力柔性调度策略的实现方式,以便将该方法迁移应用到实际工程项目中。
墙面裂缝检测7500张YOLO+VOC格式(已增强).zip
数据集格式:VOC格式+YOLO格式 压缩包内含:3个文件夹,分别存储图片、xml、txt文件 JPEGImages文件夹中jpg图片总计:7500 Annotations文件夹中xml文件总计:7500 labels文件夹中txt文件总计:7500 标签种类数:4 标签名称:["crack","horizontal crack","slanted","vertical crack"] 每个标签的框数(注意yolo格式类别顺序不和这个对应,而以labels文件夹classes.txt为准): crack 框数 = 6621 horizontal crack 框数 = 1906 slanted 框数 = 862 vertical crack 框数 = 690 总框数:10079 图片清晰度(分辨率:像素):清晰 图片是否增强:是 标签形状:矩形框,用于目标检测识别 重要说明:暂无 特别声明:本数据集不对训练的模型或者权重文件精度作任何保证,数据集只提供准确且合理标注


LINQ
