`
chandler
  • 浏览: 82096 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

记一次失败的设计经验

阅读更多

 

      这是我最近在写的一个账本小程序的最近的一个版本。最早的那个版本和这个的最大的区别在于没有MoneyContainer这个类,而Account和UserAccount这两个类直接继承自Money这个类。

       而原始的设计的失败在于,把太多的动作封装进Money这个类中,除了其本身就有的一些类,比方说我把AddChild方法放入了Money中,那么我就多了很多不必要的代码。我必须要在没有对应Entry的策略类中,加入addChild方法。同时。同时,为了在代码中,为了区分Entry,多了很多比较。

       原始问题最大的根源还是没有遵守住功能单一原则。为了代码的灵活,和抽象,把太多的东西封装到Money类中。这样最后反而导致了代码的更加不灵活,因为我必须在很多地方判断出,进来的参数是哪一种。不是哪一种。

      看来把代码分开时很重要的啊。

 

 

 

 

  • 大小: 28.7 KB
分享到:
评论

相关推荐

    一年级《小猪变形记》绘本教学设计.pdf

    每一次尝试都以失败告终,并且在模仿过程中遇到了其他动物的嘲笑和误解。故事中的小猪最终通过一系列的失败和挫折,找回了自我,认识到作为一只猪也有其独特的乐趣。 绘本的这种叙事方式可以引导儿童认识到每个个体...

    记一次广播操比赛作文.docx

    尽管有的班级在比赛中未能取得理想的成绩,但他们并没有因此而气馁,而是积极思考如何在下一次比赛中做得更好。这种积极向上的态度对于IT项目的持续改进非常重要。 #### 1. 失败是成功之母 面对失败,重要的是从中...

    人教版二年级下册道德与法治《挑战第一次》第一课时教学设计教案.docx

    在“挑战王国历险记”环节,我们设计了一系列生动有趣的游戏和任务,让学生通过回忆和分享自己的“第一次”经历,来加深对挑战的理解。这一过程不仅提升了学生的自我认知,还让他们体会到挑战的价值和意义。在面对...

    厦门浮生记(经营类小游戏类似北京浮生记)

    在游戏的世界里,常常有这样一类游戏,它们以简约的规则,让人轻松上手,却又能提供深度的思考和策略制定。《厦门浮生记》便是这样一...对于每一个渴望探索商业世界的玩家来说,《厦门浮生记》都是一次不容错过的体验。

    汇编一次课程设计

    总的来说,"汇编一次课程设计"旨在通过实际项目让学生深入了解汇编语言,提升其在操作系统级别解决问题的能力。从文件操作到流程控制,再到加密技术,每一部分都是汇编语言实践的重要组成部分,也是计算机科学不可或...

    feof函数多读一次问题分析

    因此,在最后一次成功的读取操作之后,文件虽然已经结束,但由于读取操作没有遇到任何错误,文件结束标志不会被立即设置,直到下一次读取尝试失败时,文件结束标志才会被置位。 为了避免这种“多读一次”的问题,一...

    python扫雷游戏设计(课程设计版)

    【Python扫雷游戏设计】是计算机科学与工程学院的一次课程设计任务,旨在培养学生面向对象程序设计的能力,提高代码质量和效率。在这个项目中,学生需要使用Python语言来实现经典的游戏——扫雷。通过这个设计,学生...

    部编版二年下册道德与法治《挑战第一次》教学设计.docx

    - 展示班级日常生活的图片,让学生讨论第一次的经历和感受,强调即使失败也需要坚持。 - 学生选择新的挑战项目,讨论哪些可以大胆尝试,哪些需要谨慎,哪些需要大人陪伴,培养决策能力和安全意识。 4. **实践活动*...

    程序只能运行一次,防止程序重复执行。

    在IT领域,有时候我们需要确保一个程序只被执行一次,特别是在多用户环境或者自动化流程中,以避免资源浪费或数据冲突。这个场景下提到的“程序只能运行一次”是指一种技术手段,用来限制程序在同一台计算机上多次...

    接口设计说明书(软件设计文档范例)

    - **使用方法:** 开发者在调用其他数据库操作函数之前,必须首先调用此函数初始化数据库管理模块,并且只需初始化一次。 - **提示:** 初始化操作通常只在程序启动或数据库连接建立时执行一次。 ##### 2. DB_...

    批量造检验记录

    为了防止一次性操作过大导致系统压力,可以使用分批处理,例如每批处理一定数量的记录。 6. **错误处理和日志记录**:在批量操作中,错误处理是必不可少的。通过使用TRY-CATCH块,可以捕获和处理可能出现的异常。...

    C语言程序设计课程设计

    对于学习C语言的学生而言,《C语言程序设计课程设计》不仅是一门课程,更是一次将理论知识应用于实践的重要机会。下面,我们将根据给定的文件信息,详细解析其中包含的关键知识点。 ### 一、C语言程序设计基础 ###...

    用jquery实现只能投票一次的效果

    1. **识别用户**:为了确保用户只能投一次票,我们需要一种方式来识别不同的用户。在Web环境中,最常用的方法是通过Cookie。Cookie是由服务器设置并存储在用户浏览器中的小文本文件,可以包含特定的标识符。在投票...

    【三等奖观察记录】中班 《爱争第一》.docx

    教师们还引导孩子们理解,失败同样是成长的一部分,孩子们从挫折中学习如何汲取力量,为下一次的成功做好准备。 这一观察记录不仅展示了幼儿教育在面对和处理竞争意识方面的挑战,还体现了如何通过教育干预培养孩子...

    记一次HW实战笔记 _ 艰难的提权爬坑1

    在本文中,我们将深入探讨一次HW实战中的提权攻防过程,主要涉及SQL数据库、Windows系统漏洞利用、网络协议和安全工具的运用。首先,实战起始于一个已知的SQL Server 2008数据库注入点,攻击者借此获得了网站的...

    基于Redis实现每日登录失败次数限制

    【基于Redis实现每日登录失败次数...通过上述方式,我们可以构建一个健壮的每日登录失败次数限制系统,有效地保护了服务的安全性,并为用户提供清晰的错误反馈。使用Redis作为中间件,降低了系统的复杂性和潜在风险。

    学生成绩管理系统(c程序设计)

    7. 最后一次调用`printf_list`函数展示最终的记录列表。 8. 提示用户输入要查询的学号,并调用`locate_list`查询记录位置。 #### 总结 本学生成绩管理系统实现了基本的数据管理功能,适合教学演示或小型项目的实践...

    C语言扫雷课程设计报告

    1. 概述 1.1. 研究的背景及意义 扫雷是一款经典的电脑游戏,它锻炼玩家的逻辑思维和空间推理能力。在C语言中实现扫雷游戏,不仅能帮助学生深入理解...这是一次宝贵的实践经验,对于未来的职业发展有着积极的影响。

    通讯录管理系统课程设计

    **为毕业设计做准备**:本次课程设计作为一次小规模的实战练习,为学生后续的毕业设计打下良好的基础,积累实践经验。 #### 二、功能介绍 1. **新用户注册**:允许用户创建新的账户,并保存到系统中。 - 实现方式...

Global site tag (gtag.js) - Google Analytics