我希望在工作中对我现有的组件做一些修改,并开始看到使用设计模式的好处。问题是,我有一些具体的例子,我正在尝试使用我在设计模式中学到的东西,并且在这样做时遇到了问题。这就是我想要做的。
我有一个现有的组件,可以监视不同软件包的性能,每个软件包都满足特定类型。即现有组件
每个包都执行一些性能监视,并有自己的数据日志、记录等。每个包现在只有一种类型。
将来我们可能会有一个新的特性
的包
看看这个,我认为适配器模式在这里是有用的。我可以使用现有的组件作为适配器。然后在适配器类中执行新功能。我的目标是添加两个功能的最终组件。
既然我在这里处理现有的代码,我想我应该添加一个适配器类来适应新特性。但是我有另一个想法,因为适配器是为了使一个接口与另一个接口可用。这里我有现有的接口,但我没有一个目标接口已经存在。我必须同时创建适配器和目标。所以我很困惑这个定义是否符合我的要求。
有设计模式经验的人能在这里提出你的建议吗?谢谢
这个软件是给运动员的。现行制度会追踪这些运动员的训练详情。它有一些细节,比如训练日志,他们喜欢什么品牌,个人细节等等。有一个单独的包为一种类型的运动员。运动员类型有网球运动员、高尔夫运动员、游泳运动员--运动员只能是一种类型,网球运动员或高尔夫球运动员,而不是两者兼而有之。将来还需要包括更多的功能。
希望现在一切都清楚了。
发布于 2015-07-02 11:12:16
不幸的是,您无法实现这里建议的模式。你必须至少熟悉最常见的,并理解何时使用其中的每一个。可能发生的情况是,您甚至为某些特定情况创建了自己的模式。
你的描述对我来说还不太清楚,但我可以建议你看看桥的方向,试着做些如下的事情:
abstract class Sportsmen {
ILogger logger;
List<IPackage> packages;
List<IInterest> interests;
}
interface IPackage {
IList<ISomeType> SupportingTypes {get;set; }
}我向你推荐一本关于模式:http://gameprogrammingpatterns.com/的免费在线书。
祝好运!
发布于 2015-08-07 01:27:26
对于Decorator模式来说,这看起来是一个很好的例子。
您可以有一个抽象数据记录器,您可以从中派生出初始包A、B、C等。此外,您还可以创建一个“装饰器”,它是从基本数据记录器派生出来的抽象类,并且有一个基数据记录器作为它的成员。
您可以在此成员数据表提供的功能之上构建,并将其公开为此装饰器的功能。(例如,LogData方法的AnalysisDecorator除了记录数据外,还会记录一些分析信息),您可以为要添加的每个功能创建一个装饰器。
现在,如果您想向包A添加一些额外的功能,您可以使用所需功能的装饰器包装它。这样,您就可以将任何添加的功能组合到基本包中。
希望这能有所帮助!
https://stackoverflow.com/questions/5751564
复制相似问题