如何设计一个类python_如何设计好一个python的类?

以下经验来自《Big Java》一书中,但是类的设计作为面向对象语言共通的特点,我相信这些经验也会帮助题主设计python的类,每个小标题下的文字说明是我对这些经验的理解。

1.设计一个类最重要的是它要表示了来自问题领域中的一个概念

类要表示一个问题领域的概念,问题领域可以是什么呢?我们需要分析问题,判断出它归属的领域,然后根据这个领域中,思考有哪些概念需要被用于这个问题。

概念是什么?概念是把事物的共同本质特点抽象出来,加以概括,说白了概念就是将不同的事物根据其共同的特点进行抽象分类形成。比如鸭,鸡,狗,猫,我们找出它们共同的特点都是家畜,这就是概括这几样事物的概念,因此我们就可以创造一个家畜类。我们也可以对这几样事物进行细分,比如鸭和鸡共同的特点是都有两只脚,狗和猫共同的特点是有四只脚,因此我们就可以将鸭和鸡抽象为两脚动物类,将狗和猫抽象为四脚动物类。具体如何归类应该根据任务问题的要求来进行判断。

2.一个类的名字应该是一个描述概念的名词

有些概念可能只是一个操作,比如增加,减少的概念。如果一个概念只是一个操作,我们只需要使用方法来实现它,并不需要用类去包装它。一个类会将数据与操作联系起来。而名词往往意味着它具有某些数据或属性,并且我们将会以特定的方式操作这些数据或者属性。因此,使用描述概念的名词去设计类会更为合适。

3.大部分的类都是actor

actor就是存储某些特有数据,并将其与特定的操作联系起来。为了使用这些类,我们就需要通过声明一个对象,将某些具体的数据与特定的操作联系起来,比如Java提供的Scanner类,他存储了外部输入的数据(特有数据),并将其与检测输入数据类型,将输入数据赋值给程序变量等操作(特定操作)联系在了一起。因此,我们如果要通过程序变量读取输入数据的话,就必须先声明一个Scanner类的对象,然后这个对象会存储外部读取的数据,接下来我们就可以通过这个对象操作这些数据。

4.另外一小部分类只是一些静态方法和常量的集合

静态方法和常量是指不需要声明一个对象,就可以直接通过类名调用的方法和常量。这种类的意义在于将某些相关的方法与常量集合到一起,方便程序员记忆与调用,比如你可以通过math类来直接调用加减乘除的静态方法,并不需要单独声明一个math类的对象。

5.失败的类设计往往有两个原因,类的名字无法告诉读者这个类的用途或者一个类只包含了一个操作。

类的名字无法告诉读者这个类的用途往往是因为这个类涉及了太多的数据与操作,这样的类对程序员简化编程工作没有任何的帮助,比如我们要设计一个支票检查程序,如果我们设计一个类的名字就叫做支票检查,那样子我们就需要在这个类中实现我们程序的全部功能,那还不如直接用函数编程,因此一个涉及太多的类往往无法体现面向对象编程的优点。

而如果一个类不是一个名词,而只包含了一个操作,这将会导致我们之前提到的结果,我们完全可以使用一个函数去替代它,这样做也体现不出面向对象编程的优点。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值