【发布时间】:2009-10-22 00:25:16
【问题描述】:
我正在尝试学习面向对象的编程,但我很难克服我的结构化编程背景(主要是 C,但随着时间的推移还有许多其他)。我想我会写一个简单的检查寄存器程序作为练习。我很快就把一些东西放在一起(python 是一门很棒的语言),我的数据在一些全局变量和一堆函数中。我不知道是否可以通过创建多个类来封装一些数据和函数来改进这种设计,如果可以,如何更改设计。
我的数据基本上是一个账户列表 ['checking'、'saving'、'Amex']、一个类别列表 ['food'、'shelter'、'transportation'] 和代表交易的字典列表 [ {“日期”:xyz,“猫”:xyz,“数量”:xyz,“描述”:xy]。每个帐户都有一个关联的字典列表。
然后我在帐户级别(create-acct()、display-all-accts() 等)和交易级别(display-entries-in-account()、enter-a-transaction( )、edit-a-transaction()、display-entries-between-dates() 等)
用户看到一个账户列表,然后可以选择一个账户并查看底层交易,并能够添加、删除、编辑等账户和交易。
我目前在一个大类中实现所有内容,这样我就可以在整个过程中使用 self.variable,而不是显式的全局变量。
简而言之,我试图弄清楚将其重新组织成一些类是否有用,如果有用,如何设计这些类。我读过一些 oop 书籍(最近是面向对象的思维过程)。我喜欢认为我现有的设计是可读的,不会重复自己。
任何建议将不胜感激。
【问题讨论】:
-
你读了什么?你读过哪些 OO 设计书籍?
-
@S.Lott,除了我提到的对象入门、Effective C++、Gang of 4,还有一些我无法立即回忆起来的东西。我刚开始看你的在线书。我试过 Head First 书,但不喜欢它们