昨天晚上看了<舌尖上的中国2>第一集,特别的感人,尤其是看到帮别人割麦子的麦客,一亩地开价200,雇主只肯给100,脸上的那种纠结和无可奈何.还有长着大眼睛的跳跳鱼,很可爱,不过最终还是被水煮了,有点残忍,这也是自然的规律,个人感觉如果没到揭不开锅的地步的话,就少吃点这种可爱的生灵,你怎么对自然,自然也会怎么对你. 一.常规写法 言归正传,还是说到程序上,以前看了很多多态和开闭原则的理论,但一直不知道怎么用,或者说脑子里很糊涂,现在用美食帮助理解这两个点,如果我要根据菜名来显示配方,代码可能会…
Java中的多态 1 多态是什么 多态(Polymorphism)按字面的意思就是"多种状态".在面向对象语言中,接口的多种不同的实现方式即为多态.用白话来说,就是多个对象调用同一个方法,得到不同的结果. 2 多态的语法格式 父类类名 引用名称 = new 子类类名(); 当是多态时,该引用名称只能访问父类中的属性和方法,但是访问的时候,会优先访问子类重写以后的方法. 3 满足多态的条件 子类必须继承父类 子类必须重写父类的方法 父类引用指向子类对象,即:父类类名 引用名称 = new…
写在前面 本文属于Java软件设计原则系列文章的其中一篇,后续会继续分享其他的原则.想以最简单的方式,最直观的demo去彻底理解设计原则.文章属于个人整理.也欢迎大家提出不同的想法. 首先是一些理论性知识 定义 开闭原则,The Open-Closed Principle (OCP). 一个软件实体,如类.模块和函数对扩展开放,对修改关闭. 优点 稳定性.开闭原则要求扩展功能不修改原来的代码,可以让软件系统在变化中保持稳定. 扩展性.开闭原则要求对扩展开放,通过扩展提供新的或改变原有的功能,让软…
前言 本章我们要讲解的是S.O.L.I.D五大原则JavaScript语言实现的第2篇,开闭原则OCP(The Open/Closed Principle ). 开闭原则的描述是: Software entities (classes, modules, functions, etc.) should be open for extension but closed for modification. 软件实体(类,模块,方法等等)应当对扩展开放,对修改关闭,即软件实体应当在不修改的前提下扩展.…
在面向对象编程中,SOLID 是五个设计原则的首字母缩写,旨在使软件设计更易于理解.灵活和可维护.这些原则是由美国软件工程师和讲师罗伯特·C·马丁(Robert Cecil Martin)提出的许多原则的子集,在他2000年的论文<设计原则与设计模式>中首次提出. SOLID 原则包含: S:单一功能原则(single-responsibility principle) O:开闭原则(open-closed principle) L:里氏替换原则(Liskov substitution pri…
线程是进程中某个单一顺序的控制流,是程序运行中的调度单位,是程序执行流的最小单位,一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成. 线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源. 线程也有就绪.阻塞和运行三种基本状态.每一个程序都至少有一个线程,若程序只有一个线程,那就是程序进程本身. CLR中有三种常用创建和管理线程的方式:Thread.ThreadPool.Task,下面用最简单的例子写出自己对这三种…
了解云计算的一定都听过四个“高大上”的概念:On-Premise(本地部署),IaaS(基础设施及服务).PaaS(平台即服务)和SaaS(软件即服务),这几个术语并不好理解.不过,如果你是个吃货,还喜欢汉堡,那这个问题就好解决了! 如果我想吃汉堡,有几种方法呢? 1.自己买材料自己做 准备烤箱,准备火腿,准备面粉,准备青菜,然后自己和面,加材料,加热等等.其要求动手能力比较强,比较难做,但是,您可以根据自己的口味,做出符合自己味道的汉堡.这就是On-Premise(本地部署). 典型代表:物理…
问题:在哪里都能执行java命令,是和JAVA_HOME变量有关系呢还是path中指定的那个java路径呢?? 刚学Java的时候,很多jdk配置教程都要求设置JAVA_HOME.Path.CLASSPATH3个变量.而Java官网有这么一句话:jdk1.5之后的版本在安装时不用设置CLASSPATH变量.今天我就以jdk1.5为例,总结下三者的区别. Path当我们安装完jdk之后,打开cmd(在非安装目录的路径下)输入javac.java,会提示找不到命令.我们需要将命令所在的路径添加到Pa…
一.什么是多态? 多态指同一个实体同时具有多种形式.它是面向对象程序设计(OOP)的一个重要特征.如果一个语言只支持类而不支持多态,只能说明它是基于对象的,而不是面向对象的. 二.多态是如何实现的? 在了解多态是如何实现的之前,我们先来了解一下两个概念. 前期绑定:在编译期就完成的绑定,与对象无关,与类相关,比如最常见的static方法和static的方法块. 后期绑定:也就是运行时期的绑定,而多态就是在这个阶段实现的. 在Java中所有的方法除了static方法和final方法(将privat…
抽象工厂模式向客户端提供一个接口,使得客户端在不必指定具体类型的情况下,创建多个产品族中的对象.本文采取的仍然是接着以前的那个快餐店的例子.现在,快餐店经常良好,逐渐发展壮大,为了适合不同地方人的饮食习惯,创建了两大系列(相当于产品族)快餐,北方系列和南方系列.每个系列分别由一个大厨掌勺.抽象工厂模式对新的产品族支持开闭原则,但对新的产品不支持开闭原则.例如增加新的产品族,如增加美国系列快餐(相当于增加了一个产品族),则只要从每个产品接口继承一个相应美国系列产品即可,不需要更改已有的代码.但如果…