Java中设计模式的类库?

Ser*_*gio 7 java design-patterns perfectjpattern

我发现自己在许多新项目中一次又一次地编写相同的编程模式.我一直在考虑创建我自己的这种模式的典型实现的可重用库 - 不是试图涵盖所有可能的设计模式,但只有经验表明将这种典型实现放在库中是有意义的(例如,适配器,工厂等...) - 但在此之前我想知道是否已有可用于Java的现有库?

我知道很难完全概括编程模式,因为它们可以在具有复杂需求的不同实现中重复使用(例如,模式的组合,参与多个模式的类等等).但是,大多数情况下我需要的模式实例非常简单和标准,并且在许多情况下,使用这样的库可以加快实现工作.

感谢您的反馈意见.!

Sky*_*ker 3

这正是我创建PerfectJPattern的原因。只需确保查看并理解代码示例即可。它们可以下载,也可以在每个模式实现的站点文档页面中找到。如果你读过 GoF 的书,那么你会更容易理解这些例子。

例如,如果您想在代码中使用Composite Pattern,并且使用PerfectJPattern,则只需指定要用作 Composite 的接口(通用参数和类实例),其余部分将提供给您,请参阅PerfectJPattern 复合。该页面的底部提供了一个工作示例,展示了如何实现这一目标。

您还应该考虑的另一个方面是,在PerfectJPattern中,您不一定需要重用通用模式实现(例如,perfectjpattern-core Maven 子模块),您也可以选择仅重用纯抽象级别(perfectjpattern-api Maven 子模块)并自己提供实现。在PerfectJPattern中,您可以在不同的抽象级别灵活地重用,因为 Maven 项目结构中也反映了细粒度的分层设计。如果您愿意,重用 Perfectjpattern-api 将为您提供抽象模板指南,这将帮助您加快自己的设计模式实现速度。但是,理想情况下您应该尽可能多地重复使用。

更新:根据下面的评论,值得注意的是,并非所有模式都可以完全增强,请参阅从模式到组件。有些模式只能部分组件化,而另一些模式则根本不能像单例的情况那样。Singleton 过于依赖上下文,这就是为什么你只能在PerfectJPattern中找到一个接口。然而,在PerfectJPattern中,以下模式是完全组件化的,例如观察者、命令、适配器、装饰器、复合器、代理、访问者、DAO 等。