Tag: 设计模式

缩放单身人士

在为基于服务器的应用程序考虑一些架构问题困难时,我觉得我将不得不使用单身人士来实现我的目标。 纯粹出于以下原因(certificate我的气味): 我不需要将昂贵的对象深入到调用堆栈中 我可以在任何上下文中对单例管理对象执行函数。 (很多代码已经存在,因此我不愿意重写其他工作代码的大量代码) 除此之外,Singletons提出了另一个问题。 我的基于服务器的应用程序本质上是一个DLL,其类可以调用多个服务器实例。 服务器实例类包含单例管理对象。 通常,这将由Windows服务管理,因此服务器:机器比率将是1:1。 所以你可以把它看作(其中 – >是1:1,=>是1:很多): MACHINE – > ServiceHost(Windows服务?) – >服务器实例 – >单例管理对象 但是,我们希望允许SaaS模型,该模型需要服务主机(无论是Windows服务还是Win32应用程序)才能根据业务需要启动多个服务器。 因此,物理机器可以运行单个服务器主机,该主机将运行多个服务器实例。 这将是(其中 – >是1:1,=>是1:很多): MACHINE – > ServiceHost(Windows服务?) =>服务器实例 – > 单例管理对象 问题是这些单例将在服务器之间共享。 哪个不可能发生。 单例与服务器实例必须为1:1。 假设我无法摆脱这些单例,我是否可以通过将服务实例类作为单独的进程/内存空间来将这些服务器实例彼此分开? 我只能想象我需要启动多个EXE(并使用WCF来管理),每个服务器实例一个。 这显然不是很好。

用于检查价值存在的更好的代码/模式

我有web.config条目,如下所示。 这用于控制各种角色的用户对各种页面的访问。 管理员屏幕可以由招聘经理访问,CRM1日志屏幕可以由CRM3和受让人访问 add key=”AdminScreenRoles” value =”Hiring Manager,CRM1″ add key=”LogsScreenRoles” value =”CRM3,Transferee ” 将来,新角色可以访问管理员屏幕。 也可以引入新页面。 我需要确保当前用户可以访问配置文件中的至少一个页面。 我有以下代码。 有用。 是否有更好/简洁/可扩展的代码用于此function? List authorizedRolesForAdmin = new List((ConfigurationManager.AppSettings[“AdminScreenRoles”]).Split(‘,’)); List authorizedRolesForLogs = new List((ConfigurationManager.AppSettings[“LogsScreenRoles”]).Split(‘,’)); if ((authorizedRolesForAdmin.Contains(roleName)) || (authorizedRolesForLogs.Contains(roleName))) { //Has access to at least one page } 参考 : 用于从配置文件创建数组的可扩展C#代码

我们还需要Iterator设计模式吗?

嗨伙计们,我正在学习设计模式,我找到了Iterator。 我们还需要使用它吗? 由于我们有collections,我很困惑为什么我们仍然需要Iterator设计模式。 谢谢

C#exceptioninheritance语法w /generics

我在NHibernate类定义中遇到了这个问题: public class SQLiteConfiguration : PersistenceConfiguration 所以这个类inheritance自一个由派生类参数化的基类? 我的脑袋爆炸了。 有人可以解释这意味着什么以及这种模式有用吗? (顺便说一句,这不是一个特定于NHibernate的问题。)

正确的模式设计父子类

如何设计Parent-Child类。 注意:这里Parent不是基类,而是显示一对多关系。 方法“A” public class Company { public int CompanyID; … public IList Branches; } public class Branch { } Appraoch“B” public class Company { public int CompanyID; … } public class Branch { public int CompanyID; //which represents company object } 分支屏幕的最终UI设计:= 在树视图中显示以查看屏幕: – Company A Branch 1 Branch 2 Company B Branch 3 […]

解析设置文件的设计模式

我一直试图找到一个优雅的解决方案来解析设置文件。 以下是一个例子: L09D21=Type:OPT Z:0000 F:—AZ— S:+0 AVF:OFF Desc:”AHU-QCH 07.05EX PROBE” Out:, G195=Out:LED0799,LED0814,Flags:LN Desc:”EAF-QCH-B1-01″ Invert:00 STO:35 SP:0 FStart: FStop: SysEv01=Type:FANLATCH Out:LED1165 每行可以有不同的映射,并且文件中可以有多个相同的行类型。 (这些设置来自我们需要配置的硬件设备) 我们当前的代码由多个/嵌套的switch语句组成,它们解码文件/行的每个部分。 是否有一种我可以看到的设计模式解决了类似的问题? 我的感觉是,目前我还没有看到某种多态解决方案

什么使耦合“松散”并且编写松散耦合的代码更好?

可能重复: 什么是“松散耦合?”请提供示例。 什么使耦合“松散”并且编写松散耦合的代码更好? **请提供一些链接。

使用一个页面在ASP.NET中添加和编辑项目

我不认为这个问题很清楚。 我的系统中只有19种类型的物品。 我有19个页面,每个允许我添加一个特定类型的新项目。 “添加新项目”页面和“编辑现有项目”页面彼此非常相似。我需要的是隐藏/显示几个控件。 所以我认为我会使用QueryString来定义我们将如何使用页面,如果是新的则一切都将保持不变,如果它用于“编辑”,那么我将更改几个标签的文本属性并显示一些额外的TextBoxes和DropDownLists。 我可以通过几种方式做到这一点,但这将是一团糟。 我希望有人可以提出一种方法来保持我的良好设计和架构。 谢谢你的时间=)

是否有用于将CSV随机列顺序映射到已定义属性的代码模式?

我有一个CSV,从各种来源提供给我的应用程序。 CSV将始终具有相同的数字列,并且列的标题值将始终相同。 但是,列可能并不总是按相同的顺序排列。 第1天CSV可能如下所示 ID,FirstName,LastName,Email 1,Johh,Lennon,jlennon@applerecords.com 2,Paul,McCartney,macca@applerecords.com 第2天CSV可能如下所示 Email,FirstName,ID,LastName resident1@friarpark.com,George,3,Harrison ringo@allstarrband.com,Ringo,4,Starr 我想读取每个文件的标题行,并有一个简单的机制,用于将每个“列”数据与我在类中定义的相关属性相关联。 我知道我可以使用选择语句来解决它,但这似乎是一种处理它的“坏”方式。 有没有一种简单的方法可以在运行时使用字典或类将“列”映射到属性?

每个用户的Singleton-Pattern ASP.NET C#

我正在使用asp.net c#构建一个Web应用程序,我有一个类,我想在多个页面中使用,每次实例化它。 我需要在其中加载数据,并且在用户会话期间永远不会丢失它们。 我想到了单例模式,但它共享了浏览器之间的类的实例。 我该如何解决这个问题?