反模式设计_设计模式:模式或反模式,这就是问题

反模式设计

我最近遇到了Wiki页面“ Anti-pattern” ,其中包含详尽的反模式列表。 其中一些对我来说很明显。 他们中的一些让我想了一下,其他的让我想了更多。 然后,我开始在页面上查找反模式“ singleton”,但找不到。 (文本搜索停止在单线态…)

单例是模式还是反模式?

别担心。 我不会谈论单例。 网上对此进行了足够多的讨论 。 现在,让我仅以单例为例。 在单例的情况下,图案和反图案之间没有清晰的界线。

举个例子,单例可以很容易地被使用,它很容易理解并且是一个很好的例子。 单例一直很流行,直到几年前才开始被认为是反模式。 有什么变化? 计算机科学家会变得更聪明,发现他们认为良好的模式实际上是反模式吗? 从一开始,单例就是一个反模式,我们只是不知道吗? 还是单身人士本身已经从成为好的设计模式变成了反模式?

我认为,答案很奇怪:这两种情况。 它与物理理论非常相似。 牛顿定理说,力与加速度和身体质量成正比。 爱因斯坦说这是不正确的,并且速度越大,误差越大。 牛顿错了吗? 是的,在某种意义上。 我们还能使用牛顿定律吗? 是的,我们可以,实际上是在低速情况下(与光速相比)。

从一开始单身人士就是坏人吗? 是的,和现在一样多。 我们还可以使用单例吗? 是的,我们可以,实际上,在低耗速的情况下我们会这样做……在简单问题的情况下,我们不需要单身人士成为反模式的考虑。

反模式似乎与环境有关。 在这种情况下,环境比在物理情况下要复杂得多。 量子理论,相对论或不可逆热力学(我父亲是教授)很简单,因为它们不考虑人类。 他们只是关于这个问题。

编程是关于人的。

这是我们经常忘记的事情。 当一切开始的时候,都是关于位和字节,寄存器,存储器和十六进制代码的。 程序正在运行并且执行不佳。 但是后来变得越来越复杂。 计算机科学成为信息技术。 越来越多的人使用IT,越来越多的人编写程序。 他们是这样做的程序员。 即使是一个相对简单的项目,如果要商业化的话,也需要六到八个程序员。 它们也是“模式或反模式”依赖的环境的一部分。

该环境还包含简单的事物,例如框架,编程语言,操作系统和其他技术细节,但它们单独或一起的复杂性都无法与人类媲美。

反设计模式

在就模式与反模式辩论做出决定时,许多人会问一个问题:模式可以用于什么? 这有什么用? 有什么好处? 这些是重要的问题。 如果没有好处:没有理由考虑这种模式。 但这并不能使其成为反模式。 如果没有好处,那么这种方法根本不是一种模式。 重要的问题是,它有什么弊端? 一般的Joe可以通过哪种方式来构建结构。 采用该模式的人射击自己的腿的可能性有多大? 这不是新事物。 博弈论还指出,这对于最小化最大损失比最大化可能的收益更为重要。

看一个模式,你能告诉我吗? 可能不是。 在某些情况下,是的。 恭喜,您找到了反模式。 在其他情况下,您找不到任何错误的用法。 这并不意味着没有。 时间会证明。 一般的乔会来,并将以您在最疯狂的梦中无法想象的方式(或就此而言,夜马)使用这种模式。

因此,反模式并不是天生的坏事,就像枪支不会杀死人一样。 错误使用模式是不好的。 当人们倾向于以错误的方式使用模式时,则它是一种反模式。 单例就是这种情况。

类似的事情可以通过代码注释捕获。 当我开始学习Pascal编程时,我们的老师要求50%的代码必须有意义。 今天怎么样? 干净的代码说注释是邪恶的。 有点。 太多的评论气味。 有时我发现自己参与的项目完全被驱逐。 甚至不允许使用Javadoc。 奇怪的? 这只是他们应用干净代码模式的方式。

因此,这些天开始困扰我的问题是,在编程中使用设计模式是一种好模式还是本身就是一种反模式?

参考: 设计模式:模式或反模式,这是 Java Deep博客上我们JCG合作伙伴 Peter Verhas 提出的问题 。

翻译自: https://www.javacodegeeks.com/2014/02/design-patterns-pattern-or-anti-pattern-that-is-the-question.html

反模式设计

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/343993.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

光端机的几种物理接口类型

光端机,就是光信号传输的终端设备。光端机现在能传输的业务很多,如:视频,音频,数据,开关量,电话,以太网等。那么,你对光端机的几种物理接口了解吗,是否懂得光…

js中的数据类型分为两大类分别是什么_数据类型有这么重要吗?

一个没有得到重视的知识点, 数据类型 每种语言都有自己的数据类型,下面以javascript为例 类型的分类 js的数据类型可以分为 两大类: 1,值类型 (String,Number,undefined,Boolean,null) 2,引入类型(Object,Function,Array) 个人理解也可以把值类型和引入类型分为简单类型和复杂类…

监控系统几种常见的光端机传输方案拓扑图

近几年随着模拟摄像机被网络摄像机以及高清同轴摄像机取代,在光纤传输层,之前使用量比较大的视频光端机也逐渐被光纤收发器、POE交换机、网络交换机等网络光通信设备取代掉。目前市场上音频、数据、开关量、电话、对讲等信号依然可以通过光端机来进行传输…

在等待Jakarta EE时

自甲骨文在JavaOne 2017宣布将Java™EE转移到Eclipse Foundation以来已有一年多了。此后发生了很多事情: Java™EE 8 API和实现项目已在EE4J下建立 。 Eclipse GlassFish 5.1 版本即将发布 。 全新的Jakarta EE规范流程指日可待。 社区显示出有关Jakarta EE技术…

[渝粤教育] 中国地质大学 信息检索 复习题 (2)

信息检索-模拟题 一.选择题 1.在CNKI中以下哪一个对检索结果的排序能够体现最新的文献 A.按照主题排序 B.按照下载量排 C.按照被引量排序 D.按照发表时间排序(降序) 2.ISBN是什么的缩写? A.国际标准刊号 B.国际标准书号 C.连续出版物代码 D.国内统一刊号 3.一篇论文列出的参…

[渝粤教育] 中国地质大学 劳动与社会保障法 复习题

《劳动与社会保障法》模拟题 一单选题 1.对劳动合同的无效或者部分无效有争议的由()或者人民法院确认. A.劳动行政部门 B.劳动监察机构 C.劳动争议调解委员会 D.劳动争议仲裁机构 2.用人单位经济性裁员时应当优先留用(). A.订立固定期限劳动合同的人员 B.订立无固定期限劳动合…

mysql导出包_mysql导入导出包括函数或者存储过程

mysql导入导出包括函数或者存储过程1.mysql导出整个数据库mysqldump -h hostname -u username -p databasename > backupfile.sql如果root用户没用密码可以不写-p,当然导出的sql文件你可以制定一个路径,未指定则存放在mysql的bin目录下 www.2cto.co…

[渝粤教育] 中国地质大学 城镇规划 复习题 (2)

《城市规划》模拟题 一.单选题 1.城镇规划所需编制的文件按原国家建委1980年颁布的《城市规划编制审批暂行办法》规定分为(). A.规划图纸和说明书 B.规划文件和说明书 C.城镇现状图和说明书 D.规划说明书和城镇现状图 2.城镇是区域生产力结集中心首先是()的中心. A.区域农业生…

[渝粤教育] 中国地质大学 大学语文 复习题 (2)

《大学语文》模拟题 一.单选题 1.李商隐《无题》中借神化传说抒情的诗句是() A.相见时难别亦难东风无力百花残 B.春蚕到死丝方尽蜡炬成灰泪始干 C.晓镜但愁云鬓改夜吟应觉月光寒 D.蓬山此去无多路青鸟殷勤为探看 2.戴望舒《我用我残陨的手掌》中“只有那辽远的一角依然完整”…

如何验证python的下载安装_如何下载python并正确安装

我最近在学数据分析入门课,这个老师讲的比较适合零基础的,也是用WINDOWS做演示,还PUSH了很多代码资料,我发你看看有没有帮助哈安装miniconda下载python3的64-bit版本即可。注意,一定要64位的版本。(这里选择3.6或者2.7没关系&…

工业交换机外壳选用时有什么要求?

我们一般在选择工业交换机时,更多的是关注工业交换机的温度范围、EMC电磁兼容性、安装方式和电源等,而对于工业交换机的外壳关注比较少,除了一些客户需要防水要求的。接下来就由飞畅科技的小编来为大家介绍一下工业交换机外壳选用有什么要求?…

基于drools_Drools:基于PHREAK堆栈的评估和向后链接

基于drools前一段时间,我写了一篇有关我们新算法的博客: http : //blog.athico.com/2013/11/rip-rete-time-to-get-phreaky.html 有人问我有关新的基于堆栈的系统以及向后链接如何工作的信息。 我在电子邮件中回复了他们,但我认为其他人可能…

[渝粤教育] 中国地质大学 微积分(一) 复习题 (2)

《微积分(一)》模拟题 一.单选题 1.求极限-) A.-1 B.0 C.1 D.∞ 2.求极限 A.0 B.1 C.1/2 D.3/2 3.设函数在内连续求的值. A.5 B.6 .7 D.8 4.求函数当1时的增量. A.0.1 B.0.2 C.0.3 D.0.4 5.求极限 A.1 B.1/2 C.1/3 D.1/4 6.求极限 A.-1 B.0 C.1 D.2 7.求极限 A.1 B.2 C…

[渝粤教育] 中国地质大学 政府与事业单位会计 复习题

《政府与事业单位会计》模拟题 一.单选题 1.校办工厂将纯收入的一部分上缴学校学校应记作(). A.经营收入 B.事业收入 C.附属单位上缴收入 D.其他收入 2.事业单位的任务不包括() A.组织资金供应合理使用资金 B.保护公共财产合理分配结余 C.积极开辟财源实行盈亏核算 D.反映预…

mysql内表和外表_Hive内表和外表的区别

本文以例子的形式介绍一下Hive内表和外表的区别。例子共有4个:不带分区的内表、带分区的内表、不带分区的外表、带分区的外表。1 不带分区的内表#创建表create table innerTable(id int,name string) row format delimited fields terminated by ‘|’;(show tables…

工业交换机与光纤收发器的区别

工业交换机与光纤收发器效果有什么差异工业交换机与光纤收发器不同的是,光纤收发器其实是点对点的工业工业交换机,光纤收发器只是一种光电转化设备,仅仅只是用于因传输间隔过远而采取的一种延长传输间隔的一种手法;而工业交换机是…

使用React Native和Spring Boot构建一个移动应用

“我喜欢编写身份验证和授权代码。” 〜从来没有Java开发人员。 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证。 React Native是使用React构建移动应用程序的框架。 React允许您使用声明式编程风格来…

[渝粤教育] 中国地质大学 概率论与数理统计 复习题 (2)

《概率论与数理统计》模拟题 一.单选题 1.对于事件AB下列命题正确的是(). A.若AB互不相容则与也互不相容. B.若AB相容那么与也相容. C.若AB互不相容且概率都大于零则AB也相互独立. D.若AB相互独立那么与也相互独立. 2.在一次假设检验中下列说法正确的是(). A.既可能犯第一类错…

mysql 操作指令详解_Mysql常用命令详解

Mysql安装目录数据库目录/var/lib/mysql/配置文件/usr/share/mysql(mysql.server命令及配置文件)相关命令/usr/bin(mysqladmin mysqldump等命令)启动脚本/etc/init.d/mysql(启动脚本文件mysql的目录)系统管理连接MySQL格式: mysql -h 主机地址 -u用户名 -p用户密码例 1:连接到本…

[渝粤教育] 中国地质大学 电路理论(新) 复习题 (2)

《电路理论》模拟题 一.单项选择题 1.基尔霍夫电压定律电流定律与() A.网络结构有关与原件性质有关 B.网络结构有关与原件性质无关 C.网络结构无关与原件性质有关 D.网络结构无关与原件性质无关 2.关于理想电感元件的伏安关系下列各式正确的有() A.uωLi B.uLi C.ujωLi D.uLd…