问题标签 [grasp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
grasp - 掌握模拟工具
我想做一些抓取运动规划实验,但我编译GraspIt 失败了!在 Win7 上使用 VS2010。有没有像GraspIt这样的抓握模拟工具!可以在Win7和VS2010环境下使用吗?谢谢!
java - MVC模式,没有数据库,对象存储在哪里?
我正在做一个学校项目,或者任务是设计一个项目管理工具。我们可以使用任何设计模式,只要我们能够根据 GRASP 原则解释它的优点。
我将给出项目工具的概要:
- 项目的 CRUD 功能
- 任务的 CRUD 功能(项目有任务)
- 用户的 CRUD 功能(将用户分配给任务)
- 一个简单的图形用户界面
我们决定采用 MVC 模式,并且不允许使用数据库。我的问题是:我应该在哪里存储对象?
我应该在控制器中执行此操作吗?目前我们这样做:
我感觉将对象保留在控制器中有些问题,但我无法解释原因。任何人都可以根据 GRASP 原则解释最佳实践是什么?
编辑: 谢谢,从大家那里学到了一些东西,但只能选择一个答案。
java - 具有 ResourceTypes 的资源的 Java 设计
我正在开发一个任务管理应用程序,它使用 ResourceManager 来管理不同资源的所有预留,每个资源都有它们的 ResourceType。目前,有 5 种 ResourceType,它们不会定期更改,但可能会发生。
我的问题是,就 OO 设计、GRASP 原则和代码的整体可维护性而言,实现此设计的最佳方法是什么:
选项 A:单独的类 Resource 和 ResourceType + ResourceManager 类将为每种资源类型保留资源的多映射
选项 B:单独的类 Resource + ResourceType 类将包含其对应资源的列表。
在我看来,对于选项 B,关于资源及其类型的凝聚力会更高,但我正在寻找某些(重构)场景,其中一个选项会比另一个更好?
c# - wpf replace dictionary with events
I have a WPF application with two viewmodels(AViewModel
,BViewModel
).
I think that main problem is that Singleton.Instance.Handle.Add("...",(m)=>{...});
cannot be removed from Model because it have High Coupling. And every time when i want to update collection i need to past Singleton.Instance.Handle.Add("...",(m)=>{...});
How to update collection without pasting every time Singleton.Instance.Handle.Add("...",(m)=>{...});
and BViewModel
:
AModel
:
BModel
:
Both models contain ObservableList
, which updates with data from web.
architecture - 谁应该负责调用方法?
如果我有复杂的任务要解决,我有时会遇到一种情况,即我有一种方法可以控制执行。由于 null 检查、if 语句、调用类型之间映射的方法等等,这个方法可能会变得非常长,我很难让它变得更简单。
示例 1
我可以链接方法调用,这使得第一种方法更简单。但这使得 fooMethod 依赖于 _barService,barMethod 依赖于 _someService 等等。
示例 2(与上面相同,但使用链式方法调用)
我应该如何构建我的代码?当涉及到哪个方法负责调用另一个方法时,我应该怎么想?
换句话说,我应该这样做:
或者像这样:
design-patterns - 掌握间接与中介者模式
GRASP 间接模式和中介者模式有什么区别?我试过谷歌搜索,但没有找到信息。
java - 如果有的话,用松耦合或高耦合改进我的代码?
我想通过创建与我的代码的更低耦合来使用 GRASP 改进我的代码。在我的示例中,我不确定我是否在进行低耦合,以及我是否在进行松耦合而不是高耦合?
我正在使用 Spring Boot 制作我的项目。在我的管理控制器中,我正在处理两个类:RestaurantcardService
和ContentsectionService
(来自我的服务层)。这两个类都实现了称为I_RestaurantcardService
和的接口I_ContentsectionService
。
代码如下所示:
现在我的问题是:
如果我为属性实现接口RestaurantCardService
和ContentsectionService
作为属性的数据类型而不是类本身,耦合不会下降,因为我们可以在另一个变体中实现接口RestaurantCardService
吗ContentsectionService
?
然后它看起来像这样:
c++ - 当来自 UI 的事件委托给 GRAPS 控制器时,哪个类应该更新 UI?
我正在开发一个 C++ GUI 应用程序。我知道 GRASP 控制器应该将 UI 和系统事件委托给内部应用程序,并在需要时进行一些同步。但我对这种模式有一些疑问。
UI 是否应该通过接口访问控制器?我看到在 PHP 中他们不这样做,但它可能会给我一些好处,或者它只是代码的无意义的复杂化?编程社区的习惯如何?
控制器应该如何命名?在我的 GUI 中,我有一个可以执行许多不同操作的表单:加载文件、连接到服务器、更改设置。那么,如何更好地命名该控制器?将它
MainFormController
命名为包含 UI 元素的名称(在本例中为MainForm
)?或命名它ApplicationController
?因为它可能有很多不同的事件,无法更具体地命名。哪个类应该更新 UI?控制器应该这样做吗?在这种情况下,控制器将处理来自 UI 的事件并同步或异步更新 UI。这是好习惯吗?
应该更新 UI 的类是否应该通过接口访问 UI?或者它可以直接访问 UI 元素(在我的情况下是
MainForm
)?(can
表示根据模式是否正确)。
我真的很想分析一个在代码中具有精心设计的 UI 的项目。如果你知道那个,我将不胜感激。
希望得到您的帮助!
PS:我知道这个问题可能是基于意见的,但我想知道专业程序员对此有何看法。或者也许有这个问题的 StackExchange 论坛?
design-patterns - 信息专家模式是否与服务层模式相矛盾?
在阅读有关 GRASP 模式的信息时,我停在 Information Expert,它指出类状态上的行为应该在同一个类中。但这与我多年来使用的服务层模式完全相反。服务具有域对象状态的行为。这让我感到困惑
我将不胜感激周到的回答。