面向对象

架构设计_Index

孤街醉人 提交于 2019-11-28 11:03:19
1. 面向对象架构设计 面向对象架构设计基础 面向对象架构设计流程 面向对象架构设计技巧 面向对象架构设计实践 2. 互联网技术架构 互联网技术发展之路 3. 面向业务的高可用架构设计 面向业务的高可用目标 立体化的高可用架构设计 客户端重试-HTTP-DNS 功能降级与服务降级 异地多活 业务立体化 4. 分布式技术架构 分布式存储 分布式计算 分布式协同调度 来源: oschina 链接: https://my.oschina.net/u/2858189/blog/727818

设计模式 依赖倒转

☆樱花仙子☆ 提交于 2019-11-28 07:42:52
里式替换原则,一个软件实体如果使用的是一个父类,那么一定适用于其子类,而且它察觉不出父类对象和子类对象的区别,即软件中,把父类都替换成子类,程序的行为没有变化。 依赖倒转可以说是面向对象设计的标志,用何种语言编写程序不重要,如果编写时考虑的都是如何针对抽象编程而不是针对细节编程,即程序中所有的依赖关系都是终止于抽象类或者接口,那就是面向对象设计,反之为过程化的设计。 来源: https://blog.csdn.net/qq_33369979/article/details/100036793

JS面向对象

痴心易碎 提交于 2019-11-28 05:49:25
万物皆对象 我们不缺‘对象’缺对象 知识点1 三种方法创建对象 1.第一种创建对象 New var obj = new Object(); obj.name = 'mingze'; obj.age = 20; obj.sex = 0; obj.mingze = function(){ return this.age } obj.mingze() // 20 2.1.第二种创建对象 通过隐式 var obj = {}; obj.name = 'MZ'; obj.age = 20 obj.Fn = function(){ return this.name } obj.Fn() //MZ 2.2 创建对象 简单字面量 var obj = { name:'mingze', like:'computed', Fn:function(){ return this.like } }; obj.Fn() //computed 注意:最后一个不要加逗号 如果key有空格和特殊符号 保留字 那么value 要加引号。!!!! 知识点2 函数表达式 和 函数声明的区别 function add(){} // 函数声明 var addl = function(){} // 函数表达式 --函数声明预加载先 可以在函数前调用函数 --函数表达式 预加载慢,不能在函数前面调用函数 --------------

JavaScript——面向对象以及基于类的继承

二次信任 提交于 2019-11-28 02:07:37
View Code 1 /* ###########################################* 2 * 1.通过prototype建立面向对象的JavaScript 3 * 2.基于类的继承 4 ########################################### */ 5 6 /* ##################1################# */ 7 /* 创建交通工具的构造方法 */ 8 function Vehicle() { 9 /* 交通工具属性 */ 10 var wheelCounts = 4; // 车轮数 11 var curbWeightInPounds = 3000; // 车子重量 12 13 this .getWheelCounts = function () { 14 return wheelCounts; 15 } ; 16 this .getCurbWeightInPounds = function () { 17 return curbWeightInPounds; 18 } ; 19 20 this .setWheelCounts = function (wc) { 21 wheelCounts = wc; 22 } ; 23 this .setCurbWeightInPounds =

PHP面向对象学习-属性 类常量 类的自动加载 构造函数和析构函数 访问控制(可见性)

*爱你&永不变心* 提交于 2019-11-28 00:30:01
在类的成员方法里面,可以用 -> (对象运算符): $this->property (其中 property 是该属性名)这种方式来访问非静态属性。静态属性则是用 :: (双冒号): self::$property 来访问。更多静态属性与非静态属性的区别参见 Static 关键字 。 Example #1 属性声明 跟 heredocs 不同, nowdocs 可在任何静态数据上下文中使用,包括属性声明。 Example #2 示例:使用 nowdoc 初始化属性 类常量 可以把在类中始终保持不变的值定义为常量。在定义和使用常量的时候不需要使用 $ 符号。 常量的值必须是一个定值,不能是变量,类属性,数学运算的结果或函数调用。 接口(interface)中也可以定义常量。更多示例见文档中的 接口 部分。 自 PHP 5.3.0 起,可以用一个变量来动态调用类。但该变量的值不能为关键字(如 self , parent 或 static )。 Example #1 定义和使用一个类常量 类的自动加载 在编写面向对象(OOP) 程序时,很多开发者为每个类新建一个 PHP 文件。 这会带来一个烦恼:每个脚本的开头,都需要包含(include)一个长长的列表(每个类都有个文件)。 在 PHP 5 中,已经不再需要这样了。 spl_autoload_register()

Java--面向对象四(封装、继承、多态)

假如想象 提交于 2019-11-27 23:55:42
文章目录 5、面向对象的三大特性  5.1 封装性  5.1.1 封装的基本思想 5.1.2 引入封装性的原因  5.1.3 封装性的代码体现  5.2 继承性  5.2.1 继承的基本思想  5.2.2 继承的格式  5.2.3 继承的目的  5.2.4 Java中继承性的说明  5.3 多态性  5.3.1 多态性的概念  5.3.2 多态性的使用  5.3.3 转型 5、面向对象的三大特性  5.1 封装性  5.1.1 封装的基本思想   将对象的属性和行为封装起来,而将对象的属性和行为封装起来的载体是类,类通常对用户隐藏其实现的细节。 5.1.2 引入封装性的原因 ​  (1)追求“高内聚,低耦合” ​   高内聚 :类的内部数据操作细节自己完成,不允许外部干涉; ​   低耦合 :仅对外暴露少量的方法用于使用。 ​  (2)隐藏对象内部的复杂性,只对外公开简单的接口。  5.1.3 封装性的代码体现 将类的属性xxx私化(private),同时,提供公共的(public)方法来获取(getXxx)和设置(setXxx)此属性的值 不对外暴露的私有的方法 单例模式(将构造器私有化) 如果不希望类在包外被调用,可以将类设置为缺省的。  5.2 继承性  5.2.1 继承的基本思想 ​ 使子类的对象拥有父类的全部属性和行为,同时可以增添自己的所特有的属性和行为

【js】面向对象学习资料

邮差的信 提交于 2019-11-27 20:46:47
1.面向对象模式: https://m.jb51.net/article/74549.htm 2.面向对象基础篇 http://www.cnblogs.com/chiangchou/p/js-oop1.html 实例篇 http://www.cnblogs.com/chiangchou/p/js-oop2.html 继承 http://www.cnblogs.com/chiangchou/p/js-oop3.html 3.彻底理解js面向对象之继承 https://www.jb51.net/article/134360.htm 4.JS实现继承的几种方式 https://www.cnblogs.com/humin/p/4556820.html 来源: https://www.cnblogs.com/websmile/p/10180092.html

js面向对象

穿精又带淫゛_ 提交于 2019-11-27 12:10:57
js面向对象: 类:具有相同特征的一些对象的集合;类定义了一件事物的抽象特点。通常来说,类定义了事物的属性和它可以做到的(它的行为)。举例来说,“狗”这个类会包含狗的一切基础特征,例如它的孕育、毛皮颜色和吠叫的能力。类可以为程序提供模版和结构。一个类的方法和属性被称为“成员”。 对象:具体某一个事物了,都可以叫对象;可以对其做事情的一些东西。一个对象有状态、行为和标识三种属性。 类:通过function定义的类,所以js里类的本质为函数; 类的标志:首字母大写(函数名 )  函数内部使用this  调用函数使用new关键字; 封装(encapsulation):将数据和操作捆绑在一起,创造出一个新的类型的过程。 1.类和函数天生有prototype和__proto__两个属性,prototype又是一个对象,天生有一个constructor的属性,属性值函数或类本身; 2.普通对象:天生有一个__proto__的属性,这个属性又是一个对象,指向他的父类; 栈内存 js执行的环境 (作用域) 堆内存 存放代码的空间 存放方式 键值对的形式存 字符串的形式存 作用域链 Js在执行之前,浏览器会给他一个全局作用域叫window,在window下分两个模块,一个是内存,一个是执行,内存会找到所有的关键字var和function 对变量进行提前声明(这个功能叫变量提升

js面向对象

五迷三道 提交于 2019-11-27 10:38:33
面向对象 1.面向对象的含义:通过函数封装得到的有一个类(函数); 2.每个类(函数)天生有一个prototype的属性,这个prototype又是一个对象,这个对象里有个constructor(构造函数)的属性,属性值是类本身。    3.我们所有new 一个类的时候,其实是调用它的构造函数。构造函数里的属性都是私有的,构造函数里的this都是实例对象。    4.每个对象天生有一个__proto__,指向类的原型。    5.Prototype和__proto__prototype是类的或者函数的,__proto__是对象的Prototype是存储机制,程序员来实现。__proto__是查找机制(浏览器的)    6.原型链首先定义一个对象,其次看这个对象的属性是否是私有的,是就直接使用,不是的就通过__proto__往他的类的prototype上查找,有就直接使用,没有就继续向上查找,直到查找到基类Object,没有就是undefined,有就直接使用。这种查找机制 叫原型链。 来源: https://www.cnblogs.com/qq1137674424/p/11359975.html

面向对象设计的六大原则

好久不见. 提交于 2019-11-27 09:25:58
https://blog.csdn.net/dhj199181/article/details/90637862 1) 单一职责原则:   一个合理的类,应该仅有一个引起它变化的原因,即单一职责,就是设计的这个类功能应该只有一个;   优点:消除耦合,减小因需求变化引起代码僵化。 2) 开-闭原则:   对扩展开放,对修改关闭   优点:降低了程序各部分之间的耦合性,其适应性、灵活性、稳定性都比较好。当已有软件系统需要增加新的功能时,不需要对作为系统基础的抽象层进行修改,只需要在原有基础上附加新的模块就能实现所需要添加的功能。增加的新模块对原有的模块完全没有影响或影响很小,这样就无须为原有模块进行重新测试。 3) 里氏代换原则:   很严格的原则,规则是“子类必须能够替换基类,否则不应当设计为其子类。”也就是说,子类只能去扩展基类,而不是隐藏或覆盖基类。任何基类可以出现的地方,子类一定可以出现。   优点:可以很容易的实现同一父类下各个子类的互换,而客户端可以毫不察觉。 4) 依赖倒换原则:   “设计要依赖于抽象而不是具体化”。换句话说就是设计的时候我们要用抽象来思考,而不是一上来就开始划分我需要哪些哪些类,因为这些是具体。   优点:人的思维本身实际上就是很抽象的,我们分析问题的时候不是一下子就考虑到细节,而是很抽象的将整个问题都构思出来,所以面向抽象设计是符合人的思维的