问题标签 [architectural-patterns]
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.
ios - 在 iOS ViewControllers 中替换部分功能的好策略
我在一个有很多 UI 控件的 iOS 应用程序中有 VC。我现在需要在特定状态下替换或“模拟”其中一些控件。在某些情况下,这只是禁用按钮操作,但在某些情况下,发生的操作需要用完全不同的东西替换。
我真的不喜欢在代码库中到处乱扔这种检查的想法。
在 Android 中,我可以将每个 Fragment/Activity 子类化并在那里构建功能,然后在插入 Fragment 或启动 Activity 时执行 if/else。
但是在带有 Storyboards/IBActions 和 Segues 的 iOS 上,UI 和 VC 确实是紧密耦合的。您最终要么复制 UI 视图,要么向已经很大的 VC 添加大量繁琐的代码。
在 iOS 中处理这个问题的最佳方法是什么?
我想避免做的示例代码:
azure - Azure 服务总线,使用 SDK 检查 ASB 是否受到限制
我们使用 Azure 服务总线将消息从一个服务发送到另一个服务。生产者在 1-2 小时内产生了大量的消息(几百万条)。结果,我们的服务总线(我们使用高级 Azure 服务总线)受到限制,并且我们在生产者和消费者方面收到错误。我想知道我们是否可以通过使用 Azure SDK(我们使用 ASB Java SDK)以某种方式检查 ASB 的负载,如果它很高,我们可以减慢将消息发送到队列/主题的服务。 我也知道我们可以添加更多高级单位,但这是我们将采取的最后一个选择。
我们使用什么:
- Azure 服务总线 Java SDK
- Java 9 和 Spring Boot 2.0
- Azure 服务总线高级版
你对我的案子有什么建议吗?任何建议——模式、框架、ASB SDK 功能都会很棒。
c++ - 如何选择正确的架构/设计模式
我正在做自己的研究项目,并且在正确选择架构/设计模式方面非常挣扎。
在这个项目中,“系统”启动后,我需要在后台做一些事情(任务、处理、显示数据等),同时能够使用键盘与系统交互并发送一些命令,例如“给我这个特定对象的状态”或“这个对象中的数据是什么”。
所以我的问题是——什么样的软件架构/设计模式可以应用于这个特定的项目?类/对象之间的交互应该如何组织?对象应该如何创建?
例如,“事件驱动架构”或“微内核”可以在这里应用吗?非常感谢对有用资源的一些参考!非常感谢您!
design-patterns - 设计 - 在 SQL 中存储可执行代码的替代方案
我正在开发一个小型浏览器游戏,我遇到了一个设计问题,我能想到的唯一解决方案很糟糕。
它是一个典型的网络应用程序 - Angular2/HTML/JS 前端、带有 PostgreSQL DB 的 Java 服务器、托管在 nginx 和 Tomcat 上的内容
用户可以与具有自定义行为的各种 NPC(非玩家角色)进行交互。我已经通用化了这个逻辑,NPC 作为配置行存储在数据库中,
- 编号:1
- 名称:Sam The NPC
- ImgURL:“www.mygame.com/img/npc/sam.png”
访问 mygame.com/npc/1 会在 JS 中向 Java 中的后端 API 发出一个 GET,以从数据库中获取该行,然后绑定并显示这些值。将这些作为配置行存储在数据库中允许我添加新的 NPC 或编辑现有的 NPC,而无需重新部署服务器或前端代码。
到目前为止,标准。但是,我希望 NPC Sam 友好,拜访他会增加玩家的金钱。另一个 NPC,史蒂夫,应该是敌对的,并从玩家库存中移除金钱或物品。NPC 鲍勃有时可以解锁玩家任务。
这就是我卡住的地方:每个 NPC 都有完全不同的任意行为意味着我需要每个 NPC 的可执行代码。
在我看来,我的两个选择都很糟糕,但方式不同。
每个 NPC 都有自己的 Java 类,并且是服务器逻辑中的第一类实体。所有 NPC 都实现一个
interact()方法,添加或更改 NPC 需要代码推送。每个 NPC 都会在数据库中获得一个包含可执行 JS 的新列,以通过 Java 中的脚本引擎运行。这有点危险,但也很麻烦。编写可以通过与 Java 代码库交互然后将其作为字符串保存在数据库中来调用 DB 函数的 JS 是很笨拙的。
我目前正在使用选项 2,但并不太深入,我想知道是否有一种公认的方式来处理这样的事情会更好。
design-patterns - 设计模式,架构模式,架构风格和架构之间有什么区别?
谁能描述一下设计模式、架构模式、架构风格和架构之间的区别?提前致谢。
android - Android MVVM:视图是否应该为每个用户交互(甚至是微不足道的交互)通知视图模型(只有 UI 结果/没有数据)
根据我的小知识:
在 MVVM (Model-View-ViewModel) 架构模式中,视图应该通知视图模型进行用户交互,例如按钮单击。视图模型通过更新视图将要观察的可观察数据流 (LiveData) 来响应。因此视图会更新 UI 并且用户会看到结果。
但是,让我们考虑一些微不足道的情况,当用户操作只有 UI 后果而没有相关或操纵数据时。例如:一个按钮,当单击它时,会切换另一个 UI 小部件的可见性。
我的问题是如何在正确应用 MVVM 的同时处理这个简单的案例?我应该在不通知 ViewModel 的情况下直接更新 UI 吗?
architecture - SOA 模式与客户端-服务器模式有何不同?
SOA 模式由服务提供者和服务消费者组成。
它似乎反对单体应用程序。
以上两个也适用于客户端-服务器模式。那么 SOA 模式与客户端-服务器模式有何不同呢?
SOA 模式必须使用客户端-服务器模式吗?SOA 模式不能使用客户端-服务器模式吗?
design-patterns - Broker 是一种设计模式并在 Gamma 等人的设计模式中提到吗?
在 Bass 等人的《实践中的软件架构》一书中,提到:
代理模式定义了一个运行时组件,称为代理,它调解大量客户端和服务器之间的通信。
图 13.6 给出了 Gamma、Helm、Johnson 和 Vlissides [Gamma 94] 记录的经纪人模式的原始版本。
我没有找到Gamma 等人的设计模式书。包括一个名为 Broker 的模式。Gamma 等人的设计模式中是否提到了 Broker?
我看到 Broker 在Wikipedia中被列为架构模式。Broker 是设计模式还是架构模式?
java - 我应该为每个活动创建演示者和模型吗?
我读过一些关于在 Android 中使用 MVP 模式的文章。对我来说最好的方法是创建合同(每个模型、视图和演示者一个接口)。问题是我应该为每个活动创建这样的合同,或者如果我的应用程序中有几个活动,如何实现它。谢谢
node.js - Sidecar 与中间件
我正在使用 express 构建一个微服务,并且需要对每个请求进行一些操作(比如日志记录)。我发现 sidecar 对此很有用,但是使用 express 中间件可以实现相同的功能。是否有任何场景建议使用边车而不是使用中间件?
