美文网首页
封装的意义和操作过程

封装的意义和操作过程

作者: 勤快的树懒 | 来源:发表于2017-07-27 21:30 被阅读84次

    封装

    面向对象的程序设计中,某个类把所需要的数据(也可以说是类的属性)和对数据的操作(也可以说是类的行为)

    全部都封装在类中,分别称为类的成员变量和方法(或成员函数)。这种把成员变量和成员函数封装在一起的编程

    特性称为封装。

    类由属性和方法组成,类的属性是对数据的封装,而类的方法是对类的行为的封装。

    抽象的实现并不一定必须是一张表或映射表的数据结构,选择哪种方式对契约进行实现并不重要,对象的抽象优于它

    的实现决定。外部视图不关心内部具体如何实现的。

    抽象和封装是互补的概念,抽象关注对象的可观察到的行为(外部),而封装关注的是行为的实现。封装通常是通过

    信息隐藏来实现的。信息隐藏是将那些不涉及对象本质特征的秘密都隐藏起来的过程。“复杂系统的每部分都不应该依

    赖于其他部分的内部细节”,抽象“帮助人们思考他们做什么”,而封装“让程序可以借助最少的工作进行可靠的修改”。

    封装在不同的抽象自己提供了明确的边界,因此导致了清晰的分离关注。如:表现层中,我们通常只关注业务层提供

    了那些接口,而不会关注接口具体是如何实现的一样。较高抽象层次上的对象看不到较低抽象层次的实现细节。

    平时,我们为类定义两个部分:一个接口和一个实现。类的接口描述了它的外部视图,包含了这个类所有实例的共同

    行为的抽象。类的实现包含抽象的表示以及实现期望的行为的机制。通过类的接口,我们能知道客户可以对这个类的

    所有实例所作出的假定。而客户不能对这个类的细节做任何假定。

    “封装是一个过程,它分隔构成抽象的结构和行为的元素。封装的作业是分离抽象的概念接口与实现。”

    类的方法也分为公有方法和私有方法。

    类的私有方法只能通过对象名(在类内部也就是self)在类的内部进行访问。

    而公有方法可以在类的外部通过对象名进行访问。

    和属性不同的是,一般意义上的类方法属于对象,也就是说只有通过对象才可以进行调用,不能直接通过类名进行调用。

    一般类方法的第一个参数必须是代指类对象本身的(一般我们常用self,实际上可以是任何自定义的名字,只不过self是

    大家约定俗成的用法,在下面介绍的类方法中,大家一般用cls,因为那里更多地标识的是一个类),可以通过self访问

    类对象的成员函数和数据。

    同样,公有的成员函数和私有的成员函数也是通过名字来区分的,双下划线‘__’开头的函数是私有成员函数。

    class MsgManagerment:

         def __send_vlidate_code(self, code):

              print("发送验证码...%s" % code)

         def send_msg(self, type, code):

             if type == "1":# 优化监控部

                   print("*********")

                self.__send_vlidate_code(code)

                 return 0

             else:

               return "没有权限"

    m = MsgManagerment()

    res = m.send_msg("1", "abc")

    print(res)

    相关文章

      网友评论

          本文标题:封装的意义和操作过程

          本文链接:https://www.haomeiwen.com/subject/cmstlxtx.html