UML,全称Unified Modeling Language,统一建模语言.而UML图分为用例图.类图.对象图.状态图.活动图.时序图.协作图.构件图.部署图等9种图. 在面向对象语言中,我们经常看到有用UML类图去表示各种接口和类之间关系的.但是,每次看的都是云里雾里,搞不清楚那些虚线,箭头都是代表什么意思.今天,就让我们来一探究竟吧. UML类图中有六种关系,分别是依赖关系,关联关系,聚合关系,组合关系,实现关系,泛化关系. 经过我自己的理解,画出了六种关系的示例图.类的成员变量和方法前面…
第四部分第11章,接口:从协议到抽象基类(重点讲抽象基类) 接口就是实现特定角色的方法集合. 严格来说,协议是非正式的接口(只由文档约束),正式接口会施加限制(抽象基类对接口一致性的强制). 在Python中,"X类对象"."X协议"."X接口"都是一个意思.如"文件类对象"."可迭代对象",指的不是特定的类. 一个类可能会实现多个接口,从而让实例扮演多个角色. Python语言没有interface关键字…
"""class Vector2d: typecode = 'd' def __init__(self,x,y): self.__x = float(x) self.__y = float(y) @property def x(self): return self.__x @property def y(self): return self.__y def __iter__(self): return (i for i in (self.x,self.y))from rand…
#抽象类实例 作用统一规范接口,降低使用复杂度.import abcclass Animal(metaclass = abc.ABCMeta): ##只能被继承,不能实例化,实例化会报错 @abc.abstractmethod ##加完这个方法子类必须有这个方法,否则报错 def run(self): pass @abc.abstractmethod def eat(self): pass class People(Animal): def run(self): print("People is…
目录: iterable对象 iterator对象, 数据类型Iterator类 数据类型Generator类. 生成器表达式 collections.abc:容器的抽象基类.用于判断具体类. itertools模块:很多生成iterator的函数. 延伸:duck-typing:理解python动态语言:再看继承和多态 iterable -- 可迭代对象 能够逐一返回其成员项的对象.包括: 有序类型list, str, tuple 无序类型dict, set 任何定义了__iter__, __…
1.抽象类概念 抽象类是一个特殊的类,只能被继承,不能实例化 2.为什么要有抽象类 其实在未接触抽象类概念时,我们可以构造香蕉.苹果.梨之类的类,然后让它们继承水果这个基类,水果的基类包含一个eat函数. 但是你有没有想过,我们可以将香蕉.苹果.梨实例化,去吃香蕉.苹果.梨.但是我们却不能将水果实例化,因为我们无法吃到叫水果的这个东西. 所以抽象类中只能有抽象方法(没有实现功能),该类不能被实例化,只能被继承,且子类必须实现抽象方法. 3.抽象类的作用 在不同的模块中通过抽象基类来调用,可以用最…
from:http://blog.itpub.net/14780914/viewspace-588975/ 本文面向于那些软件架构师,设计师和开发人员,他们想使用 IBM® Rational® Software Architect 从 Java™ 源代码来逆向工程生成 UML 类和序列图. 逆向工程经常被用来从已有的源代码中以一种抽象模型 UML 格式来获得丢失的设计文档,其可以用来研究一个系统的静态结构和动态行为,并用于扩展新的特性到产品. 作者详细说明了使用 IBM Rational Sof…
说之前先说一下Diagram这个单词,意思是图表; 示意图; 图解; [数] 线图的意思. 打开设置 File->Setting或windows下按Ctrl+Alt+S 在搜索框中输入Diagram,如下图: 如上所示,我们主要关心的只有Java Class Diagrams下面的几个单选框,分别对应红字部分,一般的UML类图只需要知道成员变量.构造器和方法(前面三个),其他的随意,设置好了之后我们就来演示一下, 选择需要的类文件,在编辑器中打开它 按Ctrl + Shift + Alt + U…
本文转载至 http://blog.csdn.net/fengsh998/article/details/8105666     UML类图的相关知识,UML类图(Classdiagram)是最常用的UML图,显示出类.接口以及它们之间的静态结构和关系:它用于描述系统的结构化设计. UML类图 UML类图(Classdiagram)是显示了模型的静态结构,特别是模型中存在的类.类的内部结构以及它们与其他类的关系等.类图不显示暂时性信息. 类图(Classdiagram)由许多(静态)说明性的模型…
abc模块 / abc Module 在定义抽象方法时,为了在初始化阶段就检测是否对抽象方法进行了重定义,Python 提供了 abc 模块. from abc import ABCMeta, abstractmethod # Generate a abstract base obj - MyABC class MyABC(metaclass=ABCMeta): #__metaclass__ = ABCMeta @abstractmethod def run(self): pass class…