面向对象编程(oop)

面向对象:

面向对象三大特性: 封装 继承 多肽
封装: 封装就是将具体的客观事物封装成抽象的类。并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可行的进行信息隐藏
继承: 面向对象编程语言的一个主要功能就是继承 继承是指这样的一种能力:他可以使用现有的类的所有的功能,并在无需重新编写原来的类的情况下对这些功能进行扩展,
通过继承创建的新类称为“子类”或者“派生类”。
被继承的类称为“基类”、“父类”或者“超类”
继承的过程就是从一般到特殊的过程
要实现继承,可以通过“继承”(Inheritance)和“组合”(composition)来实现
在某些oop语言中,一个子类可以继承多个基类。但是一般情况下,一个子类只能有一个基类,要实现多重继承,可以通过多级继承来实现。
继承概念的实现方式主要有2类:实现继承,接口继承
1.实现继承是指使用基类的属性和方法而无需额外编码的能力;
2.接口继承是指仅使用属性和方法的名称,但是子类必须提供实现的能力(子类重构爹类方法)

在考虑使用继承时候,有一点需要注意,那就是两个类之间的关系应该是“属于”关系。例如,employee是一个人,manager也是一个人,因此这两个类都可以继承person类。但是Leg类却不能继承person类,应为腿并不是一个人。
抽象类仅定义将由子类创建的一般属性和方法

面向对象编程范式大致为:划分对象--> 抽象类 --> 将类组织成为层次化结构(继承和合成) --> 用类与实例进行设计和实现几个阶段

多肽:

多肽性(polymorphisn)是允许你将父对象设置成为和一个或者更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给他的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。

那么,我们知道 封装可以隐藏实现细节,使得代码模块化;继承可以扩展已经存在的代码模块(类);他们的目的都是为了--代码可以重用。而多肽则是为了事项另外一个目的--接口重用。多肽的作用,就是为了类在继承和派生的时候,保证使用“”“家谱”中任一类的实例的某一属性时的正确调用

领域建模

领域模型是需求到面向对象的桥梁

领域建模三字经: 找名字 加属性 连关系

saltstack 源码安装的更多相关文章

  1. saltstack源码安装

    环境 centos6.3,python2.7.5. 1.install libzmq-master $ git clone git://github.com/zeromq/libzmq.git $ c ...

  2. 源码安装saltstack的时候遇到的问题

    公司的系统都是内网,无法连接互联网,所以没办法只有源码安装了. 看了下saltstack的官网,需要安装的包有 https://docs.saltstack.com/en/latest/topics/ ...

  3. saltstack源码详解一

    目录 初识源码流程 入口 1.grains.items 2.pillar.items 2/3: 是否可以用python脚本实现 总结pillar源码分析: @(python之路)[saltstack源 ...

  4. mono-3.4.0 源码安装时出现的问题 [do-install] Error 2 [install-pcl-targets] Error 1 解决方法

    Mono 3.4修复了很多bug,继续加强稳定性和性能(其实Mono 3.2.8 已经很稳定,性能也很好了),但是从http://download.mono-project.com/sources/m ...

  5. 搭建LNAMP环境(七)- PHP7源码安装Memcached和Memcache拓展

    上一篇:搭建LNAMP环境(六)- PHP7源码安装MongoDB和MongoDB拓展 一.安装Memcached 1.yum安装libevent事件触发管理器 yum -y install libe ...

  6. 搭建LNAMP环境(二)- 源码安装Nginx1.10

    上一篇:搭建LNAMP环境(一)- 源码安装MySQL5.6 1.yum安装编译nginx需要的包 yum -y install pcre pcre-devel zlib zlib-devel ope ...

  7. 搭建LNAMP环境(一)- 源码安装MySQL5.6

    1.yum安装编译mysql需要的包 yum -y install gcc-c++ make cmake bison-devel ncurses-devel perl 2.为mysql创建一个新的用户 ...

  8. Greenplum 源码安装教程 —— 以 CentOS 平台为例

    Greenplum 源码安装教程 作者:Arthur_Qin 禾众 Greenplum 主体以及orca ( 新一代优化器 ) 的代码以可以从 Github 上下载.如果不打算查看代码,想下载编译好的 ...

  9. salt源码安装软件和yum安装软件

    上面简单列出了源码安装的sls文件书写思路. 涉及到一些固定的思路:如, 1,拷贝 解压安装时候需要依赖tar.gz存在 如果已安装则无需再次安装. 2,启动脚本 加入chk时候需要文件存在,如果已添 ...

随机推荐

  1. [Selenium] Explicit wait 方法

    (1)  new WebDriverWait(driver, 10). until(ExpectedConditions.elementToBeClickable(locator)); (2)  ne ...

  2. Leetcode字符串专题

    Leetcode38. Count and Say 分析:根据题意,数列的下一项就是统计上一项中每个数字出现的次数,理解清楚题意就很简单了 class Solution { public: strin ...

  3. [USACO2007 Demo] Cow Acrobats

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1629 [算法] 贪心 考虑两头相邻的牛 , 它们的高度值和力量值分别为ax , ay ...

  4. input required字段;django input输入框不填写会自动变红如何修改

    前端页面中,input不输入任何内容时,点击submit时,未填写的input会标红框,有些人还会有"该字段必填的字样"!! 什么鬼,你妹的,js也见不到,css3动画也见不到,怎 ...

  5. csacademy Round #36(模拟+最坏情况)

    传送门 题意 给出n种袜子,每种袜子个数a[i],两只相同种类袜子配成一对,询问至少拿出多少只袜子能确保配出k对袜子 分析 In order to find out the minimum numbe ...

  6. Ubuntu 18.04 LTS 常见问题解决 2

    1 每次重启后都有system program problem detected sudo gedit /etc/default/apport 然后将打开的文件中的enabled=1改为0,原因暂时不 ...

  7. AtCoder Grand Contest 011 F - Train Service Planning

    题目传送门:https://agc011.contest.atcoder.jp/tasks/agc011_f 题目大意: 现有一条铁路,铁路分为\(1\sim n\)个区间和\(0\sim n\)个站 ...

  8. Educational Codeforces Round 24 E

    Vova again tries to play some computer card game. The rules of deck creation in this game are simple ...

  9. Codeforces Round #410 (Div. 2) C

    Description Mike has a sequence A = [a1, a2, ..., an] of length n. He considers the sequence B = [b1 ...

  10. Hadoop工作流--JobControl(五)

    不多说,直接上干货! 这只是部分,做个引子. 未完,待续!