zoukankan      html  css  js  c++  java
  • EA15使用指南

    EA15使用指南

    因为之前曾有过用Python编写纯面向对象代码的痛苦经历设计模式 by Python1:策略模式。所以我又想起了多年前的老伙计EA。

    我们来看下多年过去了,EA是否在编写Python工程时依然好用。

    下载&&安装

    这里下载安装的是脚本之家的版本,页面在这里

    额外提供一个百度盘:

    链接:https://pan.baidu.com/s/1p2-JZwJiY_bd3Nut-muq6A
    提取码:dilh
    复制这段内容后打开百度网盘手机App,操作更方便哦

    版本是15.0,官方最新是15.2,应该区别不大。

    安装好本体后需要使用crack文件夹下的exe替换安装目录下的exe。

    构建类图

    打开EA,点击左上角的图标新建项目。

    image-20210331144502107

    起一个项目名称,我这里就叫test2好了。

    image-20210331144555068

    新建好后的页面应该和我现在的差不多,可能会有个欢迎页面,不过差不多。

    image-20210331144724161

    先要在工程下新建一个包,点击Browser下的文件夹图标:

    image-20210331144838237

    起一个名字后点击ok,然后会出现一个窗口:

    image-20210331144945105

    我理解这个窗口是预设模板,可以快速构建一些特定的类图啥的,我们这里直接关闭这个窗口就行了。

    image-20210331145043392

    现在我们的包建好了,需要在包里添加视图,我们的类图和活动图等都是创建在视图上的。点击包右边的小图标添加视图:

    image-20210331145158081

    我这里构建的是类图,这样选择视图类型:

    image-20210331145242182

    好了,我们的类图创建好了。image-20210331145349464

    我们现在需要做的就是添加类等类图组件,这一步我折腾了半天,硬是找不到组件工具栏,后来发现的时候相当无语。居然是在类图标签左边的小图标>>,点击一下即可展开组件工具栏。

    image-20210331145540068

    通过拖拽,我们可以简单添加类

    image-20210331150705218

    我们现在要加上继承关系,选择子类,点击右上角小箭头,进行拖拽到父类:

    image-20210331150806559

    在弹出的菜单中选择Generalization:

    image-20210331150938759

    • Generalization在UML中准确的讲是表示泛化关系,但在类图中就是表示继承关系。
    • 更详细的UML介绍可以看这里。注意,这个是个山寨w3school网站,真身是没有UML相关教程的。

    我们用同样的方法还可以把类关联到接口上,当然这时候选择关系为Realization(实现)。

    image-20210331152133400

    与之类似的,我们可以给接口和抽象类Carrier加上聚合关系,此时我们可以通过TakeoffMode拖拽箭头到Carrier,然后选择Composition to whuole,即组合到整体。

    Aggregation是聚合,Composition是组合,这两者很容易傻傻分不清,我在某个地方看到的例子非常好,大雁和雁群是聚合关系,翅膀和大雁是组合关系。

    image-20210331152602219

    我们还可以在关系上添加数目,即1对1关系,双击关系,在弹出的窗口中选择Role,并填入1:

    image-20210331153052319

    现在该给类加入属性和方法了,选定一个类,在右侧Properties窗口的小图标下拉菜单中选择Attributes

    image-20210331153307504

    视图下方会打开一个管理属性的窗口,我们可以在这里快速添加属性:

    image-20210331153521609

    可以用同样的方式添加方法:

    image-20210331153748511

    经过一番设置后,我们可以完成一个简单的类图:

    image-20210331154212814

    最后我们再修改一下类的层级:

    image-20210331154444663

    我们现在有了类图,可以尝试导出代码了。

    导出代码

    先修改相关设置:

    image-20210331160259033

    我们把项目默认语言改为自己常用的语言:

    image-20210331160342995

    还需要修改我们项目的源码类型,在包上右键选择properties>properties:

    image-20210331162357671

    在打开的窗口右侧选择源码语言为你的目标语言:

    image-20210331162528022

    导出源码的功能我同样找了好半天,以前老版本是直接在包上右键菜单就有,新版难找的一B:

    image-20210331161604071

    在打开的窗口中选择如下设置后点击生成:

    image-20210331161929264

    大功告成。可以用VSCode打开项目看一下:

    image-20210331182533916

    这里要特别说明一下,如果你遇到和我一样,不管怎么设置,导出代码都是原本默认的Java代码的话,那你要检查一下项目所有类的property中的language:

    image-20210331184012387

    这里有个大坑,如果是在类图创建好后再改项目语言,只有你改的那个包的语言会变,包下面的子包和类以及视图的语言都是不会变的,你需要手动一个个把那些都改成Python,这样你导出的程序才是Python,否则不管你怎么弄都是Java。这个设定无比坑爹!

    这个问题我原本还以为是15.0版本的bug,后来找了最新的15.2安装,依然有,最后我还去下了另外一个建模工具VP,最终还是偶然间发现问题原来出在设置上。

    所以使用EA的时候最好一开始就设定好语言。

    本篇文章首发自魔芋红茶的博客https://www.cnblogs.com/Moon-Face/ 请尊重其他人的劳动成功,转载请注明。
  • 相关阅读:
    堆栈学习
    需要阅读的书籍
    Rust Book Lang Ch.19 Fully Qualified Syntax, Supertraits, Newtype Pattern, type aliases, never type, dynamic sized type
    Rust Lang Book Ch.19 Placeholder type, Default generic type parameter, operator overloading
    Rust Lang Book Ch.19 Unsafe
    Rust Lang Book Ch.18 Patterns and Matching
    Rust Lang Book Ch.17 OOP
    Rust Lang Book Ch.16 Concurrency
    Rust Lang Book Ch.15 Smart Pointers
    HDU3966-Aragorn's Story-树链剖分-点权
  • 原文地址:https://www.cnblogs.com/Moon-Face/p/14603262.html
Copyright © 2011-2022 走看看