设计模式真实的例子

时间:2011-04-20 20:54:55

标签: design-patterns

我希望在工作中对现有组件进行一些更改,并开始看到使用设计模式的优势。问题是我有一些具体的例子,我试图利用我在设计模式中学到的东西并且遇到问题。 这是我想要做的。

我有一个现有的组件,可以监控n个不同软件包的性能,每个软件包都适用于特定类型。 即现有组件

  • 类型1的包A
  • 类型2的包B
  • 类型3的包C等等......

每个包都会进行一些性能监控,并有自己的数据日志,记录等。每个包现在只有一种类型。

将来我们可能会有一个新功能

- 包括分析日志。这将具有已存在的数据日志,并在其上添加一些其他数据。 - 为包提供多种类型。 即类型1的包装A,类型2(Bitype)     类型1的包B,类型2,类型3(三叶草)

看着这个,我认为适配器模式可以在这里使用。 我可以使用现有组件作为适配器。然后在适配器类中执行新的功能。我的目标将是添加了2个功能的最终组件。 既然,我在这里处理现有代码,我想我应该添加一个适配器类来适应新功能。但我有第二个想法,因为适配器是用于使一个接口可用于另一个接口。这里我有现有的接口,但我没有目标接口。我也必须同时创建适配器和目标。如果这个定义符合我的要求,那就很困惑。

拥有一些设计模式经验的人是否可以在此提出您的建议。 感谢

确定。该软件适用于运动员。现有系统跟踪这些运动员的训练细节。它有详细信息,如培训日志,他们喜欢什么品牌和个人详细信息等。为一种运动员创建了一个单独的包。运动员类型是网球运动员,高尔夫球员,游泳运动员等。因此运动员可以只有一种类型,网球运动员或高尔夫运动员,而不是两者。将来需要包含更多功能1.包括性能日志(即获取现有日志并在其上添加性能日志详细信息)。 2.可能存在重叠的运动员兴趣,即单个运动员可以参加多项运动。一个运动员可以参加网球,黄金和游泳。希望现在很清楚。

1 个答案:

答案 0 :(得分:0)

我会为每个公共信息组创建一个界面,然后将它们实现为可以申请的运动员的触及类型。

interface IRunner
{
    int AverageSpeed {get; }

}

interface IBallPlayer
{
    int ShootingSpeed {get; }
}

class TennisPlayer : IBallPlayer;
class FootballPlayer : IRunner, IBallPlayer;

如果那不是你想要的,你必须更具体,并提供一些显示现有代码的代码示例和一些显示你想要做的代码示例。

图片(代码)的价值超过千字。