应该先考虑什么——设计模式还是代码?

2023-11-27

我正在开始一个全新的项目——我应该查看我的规范并决定应用哪些设计模式,还是只是提出一个总体的组织理念并允许模式通过重构有机地出现?

根据您的经验,哪种技术最有成效并且更有可能产生干净优雅的代码?

我还想知道是否有一些设计模式不是由 GoF 定义的,但也同样有价值?如果是这样,有哪些有用的资源可以让我自己了解这些?


您应该有机地扩展您的代码,并应用适合的模式。过早匹配模式可能会导致大量不适当的代码和过多的抽象层,从而导致设计变得混乱。见证您所见过的任何在某人第一次发现模式后编写的代码;-)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

应该先考虑什么——设计模式还是代码? 的相关文章

  • 您网站上的自定义 jQuery 脚本有多少行代码?多少才算是太多呢?

    对于我们的网站 我使用了大量 jQuery 现在我正在查看基础库顶部的 340 行 jQuery 代码 多少是太多了 我将添加更多内容 我什么时候开始尝试压缩代码并最终转向 OOP 行数并不意味着什么 重要的是你实际上在做什么 您可能拥有
  • Android:单一活动,多个视图

    我不是 Android 专业人士 尽管我开发了一个包含 50 多个活动的应用程序 这使得该应用程序非常庞大 经过8周的开发 现在出现了一些问题 导致应用程序难以维护和升级 我正在处理的主要问题是 我无法将对象引用传递给活动的构造函数 事实上
  • 从另一个命令 Handle() 方法中调用命令

    嗨 我正在使用简易注射器 https simpleinjector orgDI 库并一直在关注一些关于围绕命令模式设计的架构模型的非常有趣的材料 同时 在我的架构的命令方面 https cuttingedge it blogs steven
  • 这个单例能够抵抗序列化和反射攻击吗?

    以下代码是否能够抵抗序列化和反射攻击 public class Example private static Example instance new Example private Example public static Exampl
  • 将 javascript 放在 header 之外有多糟糕?

    这个问题几乎已经说明了一切 我开始添加一些功能到我的周末项目 http www my clock net 对于我和几个朋友来说 这是一个小应用程序 因为我们是交换生 所以它对我们来说有点有用 但事情是这样的 我在 php 中执行此操作并使用
  • 如何设置 Hibernate 读取/写入不同的数据源?

    使用 Spring 和 Hibernate 我想写入一个 MySQL 主数据库 并从基于云的 Java Web 应用程序中的另一个复制从属数据库中读取数据 我找不到对应用程序代码透明的解决方案 我真的不想更改我的 DAO 来管理不同的 Se
  • 具有线程安全性的 eventbus 最佳实践

    我的应用程序具有用户交互活动和后台服务 这是修改数据模型的唯一地方 后台服务监听用户所做的操作以及来自网络的传入消息 因此 可能会出现并发问题 我尝试使用处理程序来防止这些问题 对于事件层 我使用 greenrobots Eventbus
  • 状态机实现

    我正在尝试构建一个棋盘游戏 并且看起来它必须使用状态机来实现 我知道的状态模式 http en wikipedia org wiki State pattern来自 GoF 但我确信一定还有其他方法来实现状态机 请告诉我 如果您知道任何文章
  • Python:如何重构循环导入

    我有件事可以帮你做engine setState
  • 使 Web 表单输入在各种情况下安全的正确方法是什么?

    你们都认为什么是正确的 阅读 最灵活 松散耦合 最健壮等 方法来使来自 Web 的用户输入安全地用于 Web 应用程序的各个部分 显然 我们可以为每个上下文 数据库 屏幕显示 保存在磁盘上等 使用各自的清理功能 但是是否有一些通用的 模式
  • 如何在存储过程中查找数据表列引用

    我更改了 SQL Server 2005 数据库表中的列名称 我还有一个相当大的存储过程集合 它们可能引用也可能不引用该列 有没有办法找到哪些存储过程引用该列 而无需实际遍历每个存储过程并手动搜索它 有没有办法自动查找哪些存储过程现在会中断
  • SQL Server 中数据库数量的实际限制?

    在 stackoverflow 播客之一 我认为是 18 中 Jeff 和 Joel 正在讨论多租户数据库与单租户数据库 Joel 提到 FogBugz on Demand 使用了每个客户架构的数据库 我想知道是否有一个点超过这个点 您将需
  • 将状态上下文作为附加方法参数嵌入到状态中有何优缺点?

    在设计模式的背景下state 嵌入的优点和缺点是什么StateContext作为附加方法参数State 为了更清楚地说明 public void handle Object obj vs public void handle StateCo
  • 如何制作抗崩溃的ios应用程序

    我现在正在编写 ios 应用程序一段时间 但我的应用程序仍然经常崩溃 并且需要时间才能使它们变得非常稳定 我觉得这很烦人 那么 有没有关于防崩溃编程ios应用程序的编程模式呢 打开编译器警告 删除所有警告 运行静态分析器 删除所有警告 使用
  • 如何使用 C# 以编程方式识别对方法的引用数量

    我最近继承了需要一些修剪和清理的 C 控制台应用程序 长话短说 该应用程序由一个包含超过 110 000 行代码的类组成 是的 单个类中有超过 110 000 行 当然 该应用程序是我们业务的核心 全天候运行更新动态网站上使用的数据 尽管我
  • 使用策略和工厂模式进行依赖注入

    我正在开展一个业余项目 以更好地理解控制反转和依赖注入以及不同的设计模式 我想知道是否有将 DI 与工厂和策略模式结合使用的最佳实践 当策略 从工厂构建 需要每个可能的构造函数和实现不同的参数时 我面临的挑战就出现了 因此 我发现自己在服务
  • Android-使用 ViewHolder 和 AsyncTask 加载联系人-缩略图问题

    我正在创建一个自定义联系人应用程序 我使用带有 ViewHolder 设计模式的 ArrayAdapter 进行优化 由于加载缩略图需要花费大量时间 因此我使用 AsyncTask 类来加载图像 用于第一组联系人我的屏幕上 图片加载得很好
  • Microsoft 的并行模式库:有人想知道移植到 POSIX / Linux 有多困难吗?

    该书已出版 http blogs msdn com b vcblog archive 2011 03 15 10139453 aspx http blogs msdn com b vcblog archive 2011 03 15 1013
  • 您会认为这是单例/单例模式吗?

    想象一下 在 Global asax cs 文件中 我有一个实例类作为私有字段 我们这样说 private MyClass myClass new MyClass 我在 Global 上有一个名为 GetMyClass 的静态方法 它获取当
  • 查找 Rails 应用程序中未使用的代码

    如何查找正在运行和未运行的代码生产中 该应用程序经过充分测试 但还有很多测试unused代码 因此 他们在运行测试时得到覆盖 我想重构并清理这个烂摊子 它一直在浪费我的时间 我有很多后台工作 这就是为什么我希望生产环境来指导我 在 Hero

随机推荐

  • 在linux中使用mono获取MAC地址

    如何在 Linux 上的 Mono 应用程序中获取计算机的 MAC 地址 借自MSDN 在VS2008和mono 2 4 2 3 Debian 2 4 2 3 dfsg 2 上测试 using System using System Net
  • 访问任意深度的嵌套哈希值的最红宝石方式是什么? [复制]

    这个问题在这里已经有答案了 给定一个哈希值 例如 AppConfig service gt key gt abcdefg secret gt secret abcdefg other gt service gt key gt cred ab
  • 如何将 JSON 数据放入 html / javascript 网格表中

    我有以下 JSON 格式的数据 ID 00 50 c2 63 10 1a start 1349773838277760 end 1349773838277770 startArea areaStart endArea areaEnd dur
  • 如何在 Python 中将向量投影到由其正交向量定义的平面上?

    我有一架飞机 plane A 由其正交向量定义 例如 a b c 即向量 a b c 正交于plane A 我想投影一个向量 d e f onto plane A 我怎样才能用Python做到这一点 我想一定有一些简单的方法 Take d
  • 如何访问jar文件中的资源(Excel文件)

    您好 我已将 java 项目导出为可执行 jar 文件 在我的项目中 我正在访问一个包含一些数据的 Excel 文件 现在 当我尝试访问 Excel 文件时 无法访问该文件 我的项目结构是 Java 项目 文件夹 src 文件夹 resou
  • 如何在Flutter中使用MediaQuery设置文本的scaleFactor?

    通过 MediaQuery 我可以获得 Samsung S7 Edge 屏幕尺寸的高度和宽度 以便我可以使用它 但是如何使用MediaQuery在ListTile中布局多列动态文本呢 在我的演示项目中 我将文本大小设置为 12 在 Sams
  • Android - 如何使图标在触摸时发光?

    如何在图标上获得蓝色发光效果 有什么快速的方法吗 我真的不想用photoshop来实现这种效果 任何帮助将非常感激 如果您想以编程方式生成发光 可以按以下方法操作 我的建议是 在活 动开始时只生成一次 然后使用它创建一个 StateList
  • 即使没有内存不足,我也会遇到 java.lang.OutOfMemoryError 吗?

    我正在读书揭开 java lang Outofmemory 错误的面纱我想知道我是否理解正确 如果 Java VM 抛出异常 这是真的吗 java lang OutOfMemoryError 请求的数组大小超出VM限制 这意味着VM拒绝创建
  • 使用 Powershell 更改 IIS6 站点主目录

    我正在尝试使用 powershell 更改站点的主目录 这是我到目前为止所拥有的 但它没有保存更改 server localhost siteName mysite iis ADSI IIS server W3SVC site iis ps
  • Pandas GroupBy 借助 CSV 中的大型数据集

    一个常见的 SQLism 是 从 A 的表组中选择 A 平均值 X 我想在 pandas 中复制它 假设数据存储在 CSV 文件之类的文件中 并且太大而无法加载到内存中 如果 CSV 可以容纳在内存中 那么简单的两行代码就足够了 data
  • JSF CommandButton onclick不调用Javascript函数

    我正在使用 JSF 的命令按钮 我不知道为什么我无法调用我的 javascript 函数 当我单击按钮时 不会显示任何警报
  • 将 Hibernate 查询结果检索为结果集而不是列表

    嘿呀 我是冬眠新手 我不得不说它确实简化了 SQL 查询的一切 然而 操作返回的结果目前对我来说是一个头疼的问题 结果以列表形式返回 大多数时候 我真的希望结果位于结果集中 以便我可以更轻松地操作它 因为使用结果集 您可以通过列名或索引指定
  • 为什么 std::uniform_int_distribution::operator() 不是 const?

    据我了解 当用于提取随机数时 分布不应改变 例如 对于均匀分布 当我们使用它生成随机数时 它的最小值 最大值不应该改变 那么为什么操作员 不是const吗 While min and max 不会改变 分布可能包含帮助它生成下一个值的状态
  • Symfony2 Doctrine - PostgreSQL 的 ILIKE 子句?

    我目前正在使用 symfony2 doctrine 2 3 和 PostgreSQL 9 我已经搜索了几个小时 看看我到底该怎么做ILIKE选择与QueryBuilder 看来他们只有LIKE 但在我的情况下 我正在搜索不区分大小写的 到底
  • 在网页上显示每秒更新的txt文件

    我有点像在黑暗中拍摄 我不知道如何做到这一点 所以一些有用教程的指针和 或链接会很棒 我有一个网站 我想显示文本文件 服务器日志 可能是嵌入的 问题是 只要服务器中发生事件 通常快于半秒 该文件就会更新 我怎样才能使网页实时显示文件 即显示
  • Vim 语法高亮显示 Python 的“else:”

    我对 Vim 中默认的 python 语法高亮感到恼火 它没有突出显示else 陈述正确 Vim 仅在 else 语句之间有一些空格时才会突出显示 else 语句else和冒号 so else 有效 但是else 才不是 它一定很容易修复
  • 可以将文本添加到 SVG 路径吗?

    是否可以将文本添加到 svg 路径 我创建了一个 svg 三角形 想在其中心添加一个字母 但不确定这是否可能 是的 看SVG1 1 规范第 10 13 节 标题为 路径上的文本 有关使用textPath元素 总结 给你的路径一个id属性 C
  • 完全外连接,在 2 个数据表上,带有列列表

    我有2个数据表 我不知道它们的数据列列表 该列表必须在运行时提取 并用于完整外连接 使用这些列时 需要合并两个表之间的列 并且我需要显示所有数据 到目前为止我正在做的是 获取公共列 使用 intersect 并实现 IEqualityCom
  • Razor View 抛出“当前上下文中不存在名称“模型””

    在我的 MVC 4 应用程序中进行重大重构后 Razor 在调试视图时显示此错误 当前上下文中不存在名称 model 这是有问题的代码行 model ICollection
  • 应该先考虑什么——设计模式还是代码?

    我正在开始一个全新的项目 我应该查看我的规范并决定应用哪些设计模式 还是只是提出一个总体的组织理念并允许模式通过重构有机地出现 根据您的经验 哪种技术最有成效并且更有可能产生干净优雅的代码 我还想知道是否有一些设计模式不是由 GoF 定义的