面向对象数据库

面向对象范式的核心本质是?---不是继承 不是封装也不是多态

北战南征 提交于 2019-11-28 19:20:55
核心本质 你可能会说 其核心本质 是类似万物皆为对象 的一种设计思想,又或者说是 封装继承多态的运用,又或者是其他的什么. 我觉得,这些说法也对,不过今天要说的是另一个概念: 依赖反转. 用了个标题党的标题,答案就开门见山一些。 其核心本质,乃是通过安全便且捷的多态实现的 依赖反转;及 由此带来的依赖关系的灵活性,以及 系统架构的灵活性。 什么是依赖反转 用一张图说明下,如下: 图中,class1 要调用 class2 的函数, 依赖反转 是通过接口实现多态,进而实现依赖反转。 如果interf2没有这个接口,即图中 蓝色线条的情况。那么classe1 直接调用 class2,那么依赖方向 和控制流方向 是一致 的,都是由 class1 到 class2. 如果有 interface2 这个接口, class2 实现了 interface2, class1调用interface2; 此时的依赖方向 就是 变成了 class2,依赖 interface2. 而这个 依赖方向和控制流的方向是相反的, 这个相反就叫做依赖反转 为什么不是 封装 继承 多态 至于为什么面向对象的核心特质 不是面向对象的三大特质,原因也很简单, 在面向对象语言出现之前,封装、继承、多态这样概念和 做法已经出现了。甚至有些地方比面向对象语言的设计更为严格。 关于封装,如果用C语言去实现封装

DDD初学指南

痞子三分冷 提交于 2019-11-27 11:03:48
  因为不想对原文进行修改了,所以直接把评论贴上来了,现在看来,当年的认识确实有些问题,不只评论提到的,当年只是按部就班,其实真的做好应该是于无声处听惊雷,不过既然是给初学者看的,还是从简单的地方来吧,虽然有问题,但是对初学者来说也是有参考价值的,还是建议看一看想一想,尤其那些整天提DDD,但是书都没看过的 2016-05-31 12:46 ImCoOLeR 写得不错,好话我就不说了,浪费时间也没意义。我不同意的是DDD不适用于小项目,你说的一点我很肯定,就是DDD是设计方法,但是适不适合小项目要看DDD架构,DDD是适用于多架构的。当然小项目也许没有必要用DDD,但不等同于小项目不适合用DDD。 关于精炼我也有不同看法,精炼不仅仅是业务领域,模型或者设计元件的细分,剥洋葱的说法我不赞同。精炼是对模型的锤炼,是对业务深层次探索得出的。精炼不等于细化,而是聆听领域专家,是模型跟接近于现实中的业务领域。 我没有全部看完,大致上的看法就是这样,希望共同进步。 @ ImCoOLeR 刚看到。。。,这篇开始写的时候比较早差不多是14年写了大概,一直在草稿里15年发的,就现在来看,这篇博客里有很多不准确的地方,但是作为当年的学习的历程,所以不想改了 说不适合小项目大概是因为当时正在公司推DDD,也是一边学一边推,按部就班的落实到项目中,忽视了其实所有项目都是可以借鉴DDD思想的

自学Python-基于tcp协议的socket

流过昼夜 提交于 2019-11-27 06:58:25
自学Python之路-Python基础+模块+面向对象 自学Python之路-Python网络编程 自学Python之路-Python并发编程+数据库+前端 自学Python之路-django 自学Python-基于tcp协议的socket 一、初识封装 1.1 封装概念 广义上面向对象的封装 :代码的保护,面向对象的思想本身就是一种封装,只让自己的对象调用自己的方法。 狭义上的封装:面向对象的三大基本特征之一,隐藏对象的属性和实现细节,仅对外提供公共访问方式。 来源: https://www.cnblogs.com/yaoyaojcy/p/11349631.html

Java 面向对象(十三)

旧巷老猫 提交于 2019-11-26 16:58:01
异常 什么是异常 异常 :指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。 在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象。Java处理异常的方式是中断处理。 异常指的并不是语法错误,语法错了,编译不通过,不会产生字节码文件,根本不能运行。 异常体系 异常机制其实是帮助我们 找到 程序中的问题,异常的根类是 java.lang.Throwable ,其下有两个子类: java.lang.Error 与 java.lang.Exception ,平常所说的异常指 java.lang.Exception 。 Throwable体系: Error :严重错误Error,无法通过处理的错误,只能事先避免,好比绝症。 Exception :表示异常,异常产生后程序员可以通过代码的方式纠正,使程序继续运行,是必须要处理的。好比感冒。 Throwable中的常用方法: public void printStackTrace() :打印异常的详细信息。 包含了异常的类型,异常的原因,还包括异常出现的位置,在开发和调试阶段,都得使用printStackTrace。 public String getMessage() :获取发生异常的原因。 提示给用户的时候,就提示错误原因。 public String toString()

python 面向对象

好久不见. 提交于 2019-11-26 12:10:53
1、面向对象的基本知识 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个 “ 函数 ” 供使用(可以讲多函数中公用的变量封装到对象中) 对象,根据模板创建的实例(即:对象),实例用于调用被包装在类中的函数 面向对象三大特性:封装、继承和多态 2、类的成员 类的成员可以分为三大类:字段、方法和属性( 1、字段:普通字段、静态字段; 2、方法:普通方法、类方法、静态方法; 3、属性:普通属性) 所有成员中,只有普通字段的内容保存对象中,即:根据此类创建了多少对象,在内存中就有多少个普通字段。而其他的成员,则都是保存在类中,即:无论对象的多少,在内存中只创建一份。 2.1、字段 字段包括:普通字段和静态字段,他们在定义和使用中有所区别,而最本质的区别是内存中保存的位置不同, 普通字段 属于 对象 静态字段 属于 类 class Province: # 静态字段 country ='中国' def __init__(self, name): # 普通字段 self.name = name # 直接访问普通字段 obj = Province('河北省') print(obj.name) # 直接访问静态字段 print(Province.country) print(obj.country) 静态字段在内存中只保存一份