在某些时候,我们需要根据业务需求来动态的建立某些类的多个实例,而这些类是由用户自定义的。例如:在网络编程时,对客户端每次向服务端发起的TCP请求,在服务端都会建立Socket,用户对该Socket进行包装,形成类A。因此对于客户端的每次请求在服务端都有与A相应的实例。
但是类A又依赖于多个属性,是否需要队列来处理Socket,A所对应的Socket端口是多少。因此问题是:如何在服务端创建A的实例,然后将已定义好的属性注入到A中?
解决方法之一:
(1)基于Spring,将创建A的类称为W,作为Spring的一个bean;
(2)A的“包名+类名”作为W的String属性;
(3)A所依赖的队列和Socket端口等属性定义为一个属性集合Map,该Map作为W的一个属性。
在W运行时,对于每个客户端向服务端发起的请求,都会利用反射建立A的实例,然后将W的属性Map通过调用A的setMap方法将这些属性传递到A的实例中。
缺点:(1)W包含了对A的属性的依赖,破坏职责单一性。
(2)在实现A时,需要实现setMap方法,处理由A传递过来的参数。分散A的业务职责。
(3)Map的key在编译时不能进行检查。
有没有更好的方法解决这个问题呢?
分享到:
相关推荐
本篇文章将详细介绍这三种模块规范,并教你如何创建它们的依赖关系图。 首先,让我们从CommonJS开始。CommonJS是Node.js采用的模块规范,它允许你在服务器端使用JavaScript编写模块化代码。CommonJS的核心思想是`...
通过协调理论,可以建立起协调机制,以管理不同业务活动之间的依赖关系,从而实现业务活动之间的相互协调。 再次,本文提出的基于依赖的网络化制造动态联盟合作伙伴组合选择方法,特别考虑了企业间的相互依赖和排斥...
基于程序依赖关系匹配度的评分方法,意在通过建立考生程序与标准答案之间的依赖关系图,进而分析这两个图的匹配程度来给出分数。这种方法的优势在于能够更准确地捕捉程序逻辑结构的细节,对于理解考生程序的实际运行...
1. **模型建立**:首先,需要建立双滑块系统的动力学模型,包括滑块的质量、初始位置、速度以及摩擦本构关系的数学表达式。 2. **状态空间表示**:将模型转换为状态空间形式,以便于使用MATLAB的ODE求解器进行数值...
1. **依赖关系建模**:首先,需要识别和建立任务之间的依赖图,这可以通过监控系统事件和通信来实现。 2. **在线检测**:利用递归算法,系统在运行过程中持续检查依赖关系,一旦发现可疑依赖,立即进行分析。 3. *...
然而,正确管理和打包AssetBundle并非易事,尤其是处理资源之间的依赖关系。本文将深入探讨AssetBundle的依赖收集以及如何避免资源冗余。 Unity 5.x版本之后引入了自动分析依赖的功能,系统会基于AssetBundleName来...
依赖关系解析是计算机语言学中的一项关键技术,它旨在找出句子中词语之间的直接依赖关系,并建立一棵依赖树来表示这些关系。这在机器翻译、情感分析、问答系统等任务中有着广泛的应用。 本研究论文介绍了一种新颖的...
在建立动态链表的过程中,我们需要了解以下几个关键概念和步骤: 1. **节点结构**:首先,定义一个结构体来表示链表的节点。这个结构通常包含两个部分:存储数据的数据域和指向下一个节点的指针域。例如,在C语言中...
Spring框架是Java领域中最著名的DI框架之一,它提供了一个强大的IoC(Inversion of Control,控制反转)容器,负责创建对象、管理对象的生命周期以及建立对象间的依赖关系。在Spring中,我们可以通过XML配置、注解...
数据库中的表结构应当包括服务器的基本信息(如名称、类型、IP地址等)以及服务器间的关系(如依赖关系、调用关系等)。 2. **数据获取**:通过ASP.NET或其他后端技术读取数据库中的服务器关系数据,并将其转换为...
标题"Qt6.2依赖的mysql动态库"指出,我们关注的重点是Qt6.2与MySQL数据库之间的交互,尤其是依赖的动态链接库。动态库(Dynamic Link Library,简称DLL)允许多个程序共享同一段代码,从而节省内存并便于更新。 ...
依赖属性是WPF(Windows Presentation Foundation)框架中的一个重要特性,它允许控件和其他UI元素的属性之间建立直接的依赖关系,使得属性值的更改能够自动传播到相关联的组件。这个概念是WPF数据绑定和MVVM(Model...
售后阶段,则强调通过持续的客户服务和反馈,建立长期稳定的客户关系。 关键词:动态客户关系管理;企业竞争;电子商务;模型;企业对消费者(Business-to-Customer,B2C) 1. 引言 CRM已经成为市场营销学术界和...
10. **理论框架**:作者可能构建了一个理论模型,用以解释手机依赖、孤独感和社会支持之间的动态关系,为理解和解决这一问题提供理论依据。 通过这篇研究,我们可以深入理解手机依赖对大学生心理健康的影响,以及...
GVRS模型作为XML实例文档和实际关系数据库(RDB)之间的桥梁,减少了动态查询对静态模式映射的依赖性。这保证了动态查询的通用适应性。通过降低动态检索对静态模式映射的依赖性,可以有效避免不同供应商间因技术依赖...
Copula函数作为一种连接边际分布与联合分布的数学工具,在处理变量间的依赖关系时展现出了独特的优势。随着金融市场复杂性的增加,传统的静态Copula模型已经难以满足实际需求,因此动态Copula模型应运而生。 #### ...
本主题将深入探讨如何在Android应用中动态地添加和删除Spinner菜单,以及ArrayList和Widget之间的依赖关系。 一、Spinner的基础知识 Spinner是Android SDK中的一个视图组件,继承自AdapterView,它可以通过一个...