什么是设计模式?
设计模式只是一种开发思想。不是什么固定的格式。
前人的好的思想,我们后人拿过来用!

mixin设计模式:
1.mixin设计迷失可以在不对类的内容的修改前提下,扩展类的功能(添加父类)
2.更加方便的组织和维护不同的组建
3.可以根据开发需要任意调整功能
4.可以避免产生更多的类

缺点:
受继承关系限制,推荐只有两层的继承使用。

1.设计模式-单继承场景

 #设计模式-单继承场景
#这样每增加一个水果,都得分别去继承它的父类(方位)(送礼)(去皮)
#水果类
class Fruit:
pass
#=========方位============
#南方水果类
class SouthFruit(Fruit):
pass
#北方水果类
class NorthFruit(Fruit):
pass
#==========送礼=============
''''''
#南方礼物水果
class SouthGiftFruit(SouthFruit):
pass
#南方非礼物水果
class SouthNotgiftFruit(SouthFruit):
pass #北方礼物水果
class NorthGiftFruit(NorthFruit):
pass
#北方非礼物水果
class NorthNotgiftFruit(NorthFruit):
pass #=============去皮============= #==========真是水果==============
#苹果类
class Apple(NorthGiftFruit):
pass
#梨类
class Pear(NorthNotgiftFruit):
pass
#香蕉
class Banana(SouthNotgiftFruit):
pass
#桔子
class Orange(SouthGiftFruit):
pass

2.设计模式-多继承场景

 1  # 设计模式-多继承场景
2 # 这样每增加一个水果,只须在它的继承中增加就可以class Apple(Fruit,North,在这里增加父类) #水果类
class Fruit:
pass
#方位
#南方类
class South:
pass
#北方类
class North:
pass
#苹果类
class Apple(Fruit,North):
pass
#梨类
class Pear(Fruit,North):
pass
#香蕉
class Banana(Fruit,South):
pass
#桔子
class Orange(Fruit,South):
pass

面向对象-mixin设计模式的应用(多继承应用场景)的更多相关文章

  1. mixin设计模式

    mixin可以轻松被一个子类或者一组子类继承,目的是函数复用.在js中,我们可以将继承MiXin看作为一种通过扩展收集功能的方式. e.mixin = function(t) { for (var i ...

  2. javascript面向对象系列第三篇——实现继承的3种形式

    × 目录 [1]原型继承 [2]伪类继承 [3]组合继承 前面的话 学习如何创建对象是理解面向对象编程的第一步,第二步是理解继承.本文是javascript面向对象系列第三篇——实现继承的3种形式 [ ...

  3. (三)Javascript面向对象编程:非构造函数的继承

    Javascript面向对象编程:非构造函数的继承   这个系列的第一部分介绍了"封装",第二部分介绍了使用构造函数实现"继承". 今天是最后一个部分,介绍不使 ...

  4. ES6教程-字符串,函数的参数,了解函数的arguments对象,js面向对象,设计模式-单例模式,解构赋值

    前言 主要讲解了ES6对字符串的拓展,包括includes,startsWith和endsWith,另外增加了字符串模板. Start includes()是否包含 startsWith()以什么开头 ...

  5. C#面向对象三大特性之二:继承

    面向对象的三大特性之一的封装,解决了将对同一对象所能操作的所有信息放在一起,实现统一对外调用,实现了同一对象的复用,降低了耦合. 但在实际应用中,有好多对象具有相同或者相似的属性,比如有一个对象 果树 ...

  6. 黑马程序猿——JAVA面向对象的特性:封装,继承,多态

                                           - ----------android培训.java培训.java学习型技术博客.期待与您交流!------------  ...

  7. Java学习:面向对象三大特征:封装、继承、多态之封装性

    面向对象三大特征:封装.继承.多态. 封装性在Java当中的体现: 方法就是一种封装 关键字private也是一种封装 封装就是将一些细节信息隐藏起来,对于外界不可见. 问题描述:定义Person的年 ...

  8. Python 入门 之 面向对象的三大特性(封装 / 继承 / 多态)

    Python 入门 之 面向对象的三大特性(封装 / 继承 / 多态) 1.面向对象的三大特性: (1)继承 ​ 继承是一种创建新类的方式,在Python中,新建的类可以继承一个或多个父类,父类又可以 ...

  9. 关于JS面向对象、设计模式、以及继承的问题总结

    1.对象:JS中万物皆对象,它是一个泛指 类:对象的具体的细分 (物以类聚,人与群分.具有相同属性和方法的实例的一个集合总称) 实例:某一个类别中具体的一个事物 对象是一个抽象的概念,类似于我们的自然 ...

随机推荐

  1. c# winform窗体间的传值

    说明:本文讲解两个窗体之间的传值,主要用到两个窗体,form1,form2 1.在form1窗体单击按钮,打开窗体form2,然后把form2中文本框的值传递给form1 form1中的代码: usi ...

  2. libcurl以get方式请求服务器端文件

    static size_t callbackfunction(void *ptr, size_t size, size_t nmemb, void* userdata){    FILE* strea ...

  3. curl is a tool to transfer data from or to a server curl POST

    https://curl.haxx.se/docs/manpage.html curl is a tool to transfer data from or to a server, using on ...

  4. Use Apache HBase™ when you need random, realtime read/write access to your Big Data.

    Apache HBase™ is the Hadoop database, a distributed, scalable, big data store. Use Apache HBase™ whe ...

  5. s1考试 图书管理系统 结构体版

    #include <iostream> #include <string> #include <cstdio> #include <cstdlib> # ...

  6. svn提交异常file is scheduled for addition, but is missing

    svn提交错误file is scheduled for addition, but is missing svn ci -m "" svn: E155010: Commit fa ...

  7. windows server安装oracle

    倒腾windows server的时候一定要先整net framework然后再安装oracle不然连不上或者装一下client 也能连上但是为了不安装client一定要先装framework!

  8. dij+堆优化

    写这个dij+堆优化的原因是有些地方卡SPFA,只能搞这个: 香甜的奶油: #include<iostream> #include<cstdio> #include<cs ...

  9. Looksery Cup 2015 C. The Game Of Parity —— 博弈

    题目链接:http://codeforces.com/problemset/problem/549/C C. The Game Of Parity time limit per test 1 seco ...

  10. Python视频教程

    Python这门语言相对学起来是简单点的,尤其对于测试人员来说,如果达到可以写自动化测试脚本的程度的话,学些基础就是可以的.那么在网上也是有很多资源的,各种培训的视频.作为一名过来人(哈哈),或者说是 ...