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

记一次失败的设计经验

阅读更多

 

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

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

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

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

 

 

 

 

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

相关推荐

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

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

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

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

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

    游戏中的每一次成功交易,都是对玩家策略思维的一次肯定,而失败则能让他们反思并调整策略,从而不断进步。 此外,游戏的界面和操作设计应该简洁易懂,使得新玩家能够快速上手。游戏中的教程和提示将帮助玩家了解...

    汇编一次课程设计

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

    feof函数多读一次问题分析

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

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

    在“挑战王国历险记”的活动中,教师设计了一系列任务,让学生回忆和分享自己的“第一次”,这不仅能够增进学生的自我认知,也能让他们意识到挑战的价值和意义。在面对困难和挫折时,教师鼓励学生分享自己的经历,...

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

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

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

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

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

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

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

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

    批量造检验记录

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

    C语言程序设计课程设计

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

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

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

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

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

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

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

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

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

    C语言扫雷课程设计报告

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

    通讯录管理系统课程设计

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

    ATM取款机系统数据库设计.rar

    - **交易表**:记录每一次交易的详细信息,包括交易ID、交易类型(存款/取款/转账)、交易金额、交易时间、执行的ATM机ID、银行卡号、用户ID、交易状态(成功/失败)等。 4. **完整性约束**: - 实体完整性:确保...

Global site tag (gtag.js) - Google Analytics