- JAVA设计模式--七大原则之里氏替换原则(04)
薇薇
设计模式
里氏代换原则(LiskovSubstitutionPrincipleLSP)面向对象设计的基本原则之一。里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。里氏代换原则是对“开-闭”原则的补充。实现“开-闭”原则的关键步骤就是抽象化。而基类与子类的继
- 面向对象设计原则和设计模式分类
阳光明媚sunny
设计模式设计模式
面向对象设计六大原则SOLID单一职责原则(SingleResponsibilityPrinciple)就一个类而言,应该仅有一个引起它变化的原因。开闭原则(OpenClosePrinciple)软件中的对象(类、模块、函数等)应该对于扩展是开放的,对于修改是封闭的。当软件需要变化时,我们应该尽量通过扩展的方式来实现变化,而不是通过修改已有的代码来实现。里氏替换原则(LiskovSubstitut
- 《设计模式之禅》笔记摘录 - 1.六大设计原则
使二颗心免于哀伤
《设计模式之禅》笔记摘录笔记设计模式
文章目录单一职责原则单一职责原则的定义最佳实践里氏替换原则里氏替换原则的定义最佳实践依赖倒置原则依赖倒置原则的定义最佳实践接口隔离原则接口隔离的定义最佳实践迪米特法则迪米特法则的定义最佳实践开闭原则开闭原则的定义最佳实践单一职责原则单一职责原则的定义单一职责原则的英文名称是SingleResponsibilityPrinciple,简称是SRP。SRP的原话解释是:Thereshouldnever
- 设计模式的详细介绍
目录六大原则(1)单一职责原则:(2)开闭原则:(3)里氏替换原则:(4)依赖倒置原则:(5)迪米特法则:(6)接口隔离原则:总结单例模式工厂模式简单工厂模式工厂方法模式抽象工厂模式建造者模式代理模式六大原则(1)单一职责原则:类的职责应该单一,一个方法只做一件事。职责划分清晰明了,每次改动到最小单位的类或者方法。使用建议:两个完全不一样的功能不能放在一个类中,一个类应该是一组相关性很高的函数、数
- Python面向对象设计:SOLID原则详解
Yant224
python#面向对象编程python面向对象设计SOLID原则Python编程软件架构设计模式代码质量
一、SOLID原则概述1.1为什么需要设计原则?软件需求变化代码腐化维护成本增加开发效率下降系统重构SOLID原则是打破这一恶性循环的关键,由RobertC.Martin提出,包含五大核心原则:原则简称核心思想单一职责原则SRP一个类只有一个改变的理由开闭原则OCP对扩展开放,对修改关闭里氏替换原则LSP子类必须能替换父类接口隔离原则ISP多个专用接口优于单一通用接口依赖倒置原则DIP依赖抽象而非
- 设计模式在上位机项目的实战
StevenChen85
上位机设计模式
前言一款设备在公司研发出来后,因客户的不同、中标金额的同等各种原因。会去这款设备的配置进行相应的变更,如上料机器人换了。这时软件也要进行修改。为了解决因部分硬件修改导致软件大范围修改。使用软件设计模式的【里氏替换原则】和【简单工厂】和【模板模式】等相关设计方式相结合就可以很好的解决这个问题。今天我就以我在公司的项目实战为例给大家分享一下。我做的这个设备最近新做的设备通知说上料的机器人变了。通讯方式
- 从代码小白到设计大神:里氏替换原则全解析
目录一、里氏替换原则是什么二、遵循里氏替换原则的好处(一)提高代码可维护性(二)增强代码复用性(三)构建良好继承体系三、里氏替换原则的应用场景(一)几何图形面积计算(二)动物叫声模拟(三)车辆追踪系统四、违反里氏替换原则的后果(一)导致程序出错(二)破坏继承体系五、如何遵循里氏替换原则(一)合理设计继承关系(二)避免重写非抽象方法(三)保持方法行为一致性六、总结一、里氏替换原则是什么里氏替换原则(
- 依赖倒置和里氏替换原则
Miqiuha
里氏替换原则
1.依赖倒置原则依赖倒转原则(DependencyInversionPrinciple,DIP)是面向对象设计中的五大设计原则之一。它强调高层模块不应该依赖低层模块,两者都应该依赖于抽象。即,使得系统的具体实现依赖于抽象接口,而不是相反。依赖倒转原则的核心思想:高层模块(调用者)不应该依赖于低层模块(被调用者),二者都应该依赖于抽象。抽象不应该依赖于细节,细节应该依赖于抽象。第二个条件的具体理解:
- 设计模式-里氏替换原则(Liskov Substitution Principle, LSP)
英杰.王
设计模式里氏替换原则
里氏替换原则(LiskovSubstitutionPrinciple,LSP)核心思想:子类必须能够替换其父类,且替换后程序的正确性不受影响。核心目标:确保继承关系的合理性,避免子类破坏父类的行为契约。原理详解行为兼容性子类的方法输入参数应比父类更宽松(前置条件不能更强)。子类的方法返回值应比父类更严格(后置条件不能更弱)。子类不应修改父类方法的预期行为(如抛出父类未声明的异常)。契约设计父类定义
- 六大设计原则
设计模式中的六大设计原则前言一、开闭原则OCP1.定义及目标2.不使用OCP的示例3.使用OCP的示例4.总结二、里氏替换原则LSP1.定义及核心思想2.不使用LSP示例3.使用LSP示例4.总结三、依赖倒置原则DIP1.定义2.不使用依赖倒置原则示例3.使用依赖倒置原则示例四、单一职责原则SRP1.定义2.不使用SRP示例2.使用SRP示例4.总结五、接口隔离原则ISP1.定义2.不使用ISP示
- Java设计模式(一)面向对象设计原则
爱编程的宵夜
java设计模式开发语言
Java设计模式(一)面向对象设计原则提示:君子不忍其短,不懂则问,不能则学文章目录Java设计模式(一)面向对象设计原则面向对象设计原则一、单一职责原则二、开闭原则三、里氏替换原则四、依赖倒转原则五、接口隔离原则六、合成复用原则七、迪米特法则总结面向对象设计原则面向对象设计原则在我们在进行软件开发时,不仅仅需要将最基本的业务给完成,还要考虑整个项目的可维护性和可复用性,我们开发的项目不单单需要我
- 23种设计模式概述详述(C#代码示例)
冰茶_
架构设计模式C#设计模式c#开发语言微软学习.netmicrosoft
文章目录1.引言1.1设计模式的价值1.2设计模式的分类2.面向对象设计原则2.1单一职责原则(SRP)2.2开放封闭原则(OCP)2.3里氏替换原则(LSP)2.4接口隔离原则(ISP)2.5依赖倒置原则(DIP)2.6合成复用原则(CRP)2.7迪米特法则(LoD)3.创建型设计模式3.1单例模式(Singleton)3.2工厂方法模式(FactoryMethod)3.3抽象工厂模式(Abst
- 设计原则:接口隔离原则(ISP)
老於记
数据库设计模式javapython编程语言
接口隔离原则的英文是InterfaceSegregationPrinciple,缩写就是ISP。与里氏替换原则一样其定义同样有两种定义1:Clientsshouldnotbeforcedtodependuponinterfacesthattheydon'tuse.(客户端被强迫不应该依赖它不需要的接口。)定义2:Thedependencyofoneclasstoanotheroneshouldde
- 设计模式系列(03):设计原则(二):DIP、ISP、LoD
码农秋
设计模式设计模式依赖倒置原则接口隔离原则迪米特法则
本文为设计模式系列第3篇,聚焦依赖倒置、接口隔离、迪米特法则三大设计原则,系统梳理定义、实际业务场景、优缺点、最佳实践与常见误区,适合系统学习与团队协作。目录1.引言2.依赖倒置原则(DIP)3.接口隔离原则(ISP)4.迪米特法则(LoD)5.常见误区与反例6.最佳实践7.参考资料与延伸阅读1.引言在上一文中,我们介绍了单一职责、开放封闭和里氏替换原则。本文将继续介绍另外三大设计原则:依赖倒置原
- LSP里氏替换原则
软件不硬
里氏替换原则
LSP强调子类必须能够替换父类。即子类应该具有与父类相同的行为和功能,而不仅仅是继承父类的属性和方法。LSP是对继承机制的约束规范、是指导接口与实现的设计原则。LSP关键点前置条件不能强化:子类方法的参数类型必须与父类相同或者更为宽松。后置条件不能弱化:子类方法的返回值类型必须与父类相同或者是其子类型。不变量要保持:子类不能破坏父类原有的约束条件。异常类型需兼容:子类方法抛出的异常必须是父类方法抛
- php java go python面向对象的设计原则和常用设计模式
宇飞林海
phpjava设计模式
一、面向对象设计原则(OOPDesignPrinciples)是写出高内聚、低耦合、可维护系统的基础,重点是SOLID五大原则+其他补充原则。SOLID五大设计原则:原则名称全称核心思想示例关键词S单一职责原则SingleResponsibilityPrinciple一个类只负责一项职责拆分类、分离逻辑O开闭原则Open-ClosedPrinciple对扩展开放,对修改关闭插件式架构L里氏替换原则
- C++设计模式:面向对象的八大设计原则之四
Wabi_sabi_x
设计模式(C++示例)c++设计模式开发语言
里氏替换原则(LiskovSubstitutionPrinciple,LSP)是面向对象设计中的一个重要原则,它指出子类必须能够替换它的基类,并且程序的行为不会发生改变。也就是说,在任何使用基类对象的地方,都可以透明地使用其子类对象。继承不仅是代码复用的手段,更重要的是表达了类型的抽象,子类是对基类的一种特殊化。下面通过几个C++代码示例来详细讲解里氏替换原则。示例一:简单的继承与替换首先,我们定
- C++抽象工厂模式详解--设计模式(3)
大王算法
C++入门及项目实战宝典软件架构设计指南设计模式
AbstractFactory模式来源:抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。抽象工厂模式是指当有多个抽象角色时,使用的一种工厂模式。抽象工厂模式可以向客户端提供一个接口,使客户端在不必指定产品的具体的情况下,创建多个产品族中的产品对象。根据里氏替换原则,任何接受父类型的地方,都应当能够接受子类型。因此,实际上系统所需要的,仅仅是类型与这些抽象产品角色相同的一些实例,而
- 【设计模式】六大基本原则
仲夏北斗星
设计模式设计模式开闭原则里氏替换原则依赖倒置原则单一职责原则接口隔离原则迪米特原则
文章目录开闭原则里氏替换原则依赖倒置原则单一职责原则接口隔离原则迪米特原则总结开闭原则核心就一句话:对扩展开放,对修改关闭。针对的目标可以是语言层面的类、接口、方法,也可以是系统层面的功能、模块。当需求有变化的时候,尽量不要动已经存在的核心代码,而是围绕核心代码做扩展升级。所以,在最开始的代码设计阶段,就应该适当考虑以后可能存在的扩展点,预留一定的可扩展空间。遵循这条设计原则,就是要保证新增特性的
- 23种设计模式简述
后端开发基础免费分享
java设计模式设计模式java
目录一、设计模式的分类1.1创建型模式1.2结构型模式1.3行为型模式二、设计模式的六大原则2.1开闭原则2.2里氏替换原则2.3依赖倒转原则2.4接口隔离原则2.5迪米特法则2.6合成复用原则三、设计模式3.1单例模式3.2工厂模式3.3建造者模式3.4原型模式3.5代理模式3.6桥接模式3.7装饰器模式3.8适配器模式3.9外观(门面)模式3.10组合模式3.11享元模式3.12观察者模式3.
- 概念实践极速入门 - 常用的设计模式 - 简单生活例子
撒乎乎不撒
编程思维新手入门设计模式生活java设计规范代码规范
概念实践极速入门-常用的设计模式-简单生活例子SOLID五大设计原则的首字母缩写单一职责原则和开闭原则就省略啦,这两个概念很简单,为了写而写反而容易误导人~*鼓励大家字面理解!//哎呀还是解释吧单一(S):单干一件事;开闭(O):拓展开放,修改关闭!里氏替换原则(L)仅仅发生在继承体系中子类不能影响父类独有行为例:对象构建自由与必要顺序规范鸵鸟不能飞但是继承到了鸟具有了飞的行为错误示范:对象构建自
- 编程自学指南:java程序设计开发,设计思想开源框架-六大原则,高内聚、低耦合、可维护、可扩展
zl515035644
java自学指南#设计思想开源框架java开发语言Java开发Java编程Java设计思想Java六大原则
编程自学指南:java程序设计开发,设计思想开源框架-六大原则设计思想开源框架-六大原则概述编程自学指南:java程序设计开发,设计思想开源框架-六大原则设计思想开源框架-六大原则概述1.单一职责原则(SingleResponsibilityPrinciple,SRP)2.开闭原则(OpenClosedPrinciple,OCP)3.里氏替换原则(LiskovSubstitutionPrincip
- C#核心学习(十一)面向对象--继承(2):万物之父object和装箱拆箱
FAREWELL00075
学习c#面向对象继承万物之父object装箱与拆箱
目录一、C#中的万物之父object是什么?二、object类提供的基本方法与用途1.核心方法1.什么是哈希码?2.默认行为2.基类的用途三、装箱(Boxing)与拆箱(Unboxing)1.装箱(Boxing)2.拆箱(Unboxing)1.值类型装箱后修改2.引用类型装箱后修改四、装箱与拆箱的优缺点优点缺点五、如何避免装箱与拆箱?总结相信读者看了上一篇文章之后,大概了解了什么是里氏替换原则,今
- 设计模式六大原则,带你看懂编程的底层逻辑
coderzpw
算法+数据结构+设计模式设计模式设计模式
设计模式六大原则,带你看懂编程的底层逻辑一、单一职责原则(SRP)[各司其职,简洁高效]二、开闭原则(OCP)[拥抱扩展,拒绝修改]三、里氏替换原则(LSP)[子类上位,无缝衔接]四、依赖倒置原则(DIP)[面向抽象,解耦神器]五、接口隔离原则(ISP)[按需定制,拒绝冗余]六、迪米特法则(LoD)[保持距离,降低耦合]总结设计模式六大原则是构建高质量代码的基石,但很多教材中的例子过于抽象,导致理
- 【设计模式】设计模式六大原则
此木|西贝
设计模式设计模式java开发语言
单一职责原则定义:一个类或者一个模块应该有且仅有一个能引起他变化的原因核心思想:避免职责扩散,高内聚低耦合开放-封闭原则定义:类、模块应该对扩展开放,对修改关闭核心思想:通过对实现/继承父类实现扩展,而非对现有代码进行修改里氏替换原则定义:子类能够替换父类,且不影响程序的正确性核心思想:子类不应破坏父类的行为约定接口隔离原则定义:使用多个接口隔离操作,比使用单个接口定义多个操作要好,降低了各操作之
- 里氏替换原则
手搓DesignPattern
里氏替换原则java开发语言
里氏替换原则(LiskovSubstitutionPrinciple,LSP)是面向对象设计SOLID原则中的"L",由BarbaraLiskov于1987年提出。其核心思想是:定义子类对象必须能够替换其父类对象,且不会破坏程序的正确性。即:如果程序原本使用父类对象,那么替换为任意子类对象时,程序的行为不应发生异常或逻辑错误。核心思想行为一致子类应保持父类的契约(方法的功能、输入/输出约束),不能
- 常用八种设计模式,怒肝21000字,常用设计模式看这一篇就够了
小王笃定前行
java篇设计模式Java
文章目录设计模式分类七大原则单一职责原则开闭原则里氏替换原则接口隔离原则依赖倒置原则合成复用原则迪米特法则单例懒汉式:饿汉式:线程安全版懒汉式工厂模式简单工厂模式:工厂方法模式:抽象工厂模式:代理模式静态代理:动态代理:虚拟代理:装饰器模式策略模式观察者模式责任链模式本文主讲八种设计模式,分别是单例、工厂方法、抽象工厂、代理模式、装饰器模式、策略模式、观察者模式、责任链模式。概念:设计模式是一种解
- 一文读懂!软件设计模式的原理与应用
编程在手天下我有
设计模式
一文读懂!软件设计模式的原理与应用一、软件设计模式的原理1.单一责任原则(SRP)2.开闭原则(OCP)3.里氏替换原则(LSP)4.依赖倒置原则(DIP)5.接口隔离原则(ISP)6.迪米特法则(LoD)二、软件设计模式的应用1.创建型模式2.结构型模式3.行为型模式一、软件设计模式的原理1.单一责任原则(SRP)含义:一个类应该仅有一个引起它变化的原因,即一个类只负责一项职责。作用:将不同的职
- 【设计模式】SOLID 设计原则概述
白码思
设计模式
SOLID是面向对象设计中的五大原则,不管什么面向对象的语言,这个准则都很重要,如果你没听说过,赶紧先学一下。它可以提高代码的可维护性、可扩展性和可读性,使代码更加健壮、易于测试和扩展。SOLID代表以下五个设计原则:S-单一职责原则(SingleResponsibilityPrinciple,SRP)O-开闭原则(Open/ClosedPrinciple,OCP)L-里氏替换原则(LiskovS
- 里氏替换原则
Vic10101
开发实战项目总结Java性能优化里氏替换原则
里氏替换原则(LiskovSubstitutionPrinciple,LSP)是面向对象设计的核心原则之一,属于SOLID中的L。其核心思想是:子类必须能够替换父类,且替换后程序的行为不变。简单来说,所有使用父类的地方,都应该能透明地替换成子类,而不会引发错误或意外行为。核心规则行为一致性:子类的方法行为应与父类一致(或更严格)。契约不变:子类不能修改父类定义的方法参数、返回值类型或抛出的异常范围
- LeetCode[Math] - #66 Plus One
Cwind
javaLeetCode题解AlgorithmMath
原题链接:#66 Plus One
要求:
给定一个用数字数组表示的非负整数,如num1 = {1, 2, 3, 9}, num2 = {9, 9}等,给这个数加上1。
注意:
1. 数字的较高位存在数组的头上,即num1表示数字1239
2. 每一位(数组中的每个元素)的取值范围为0~9
难度:简单
分析:
题目比较简单,只须从数组
- JQuery中$.ajax()方法参数详解
AILIKES
JavaScriptjsonpjqueryAjaxjson
url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址。
type: 要求为String类型的参数,请求方式(post或get)默认为get。注意其他http请求方法,例如put和 delete也可以使用,但仅部分浏览器支持。
timeout: 要求为Number类型的参数,设置请求超时时间(毫秒)。此设置将覆盖$.ajaxSetup()方法的全局
- JConsole & JVisualVM远程监视Webphere服务器JVM
Kai_Ge
JVisualVMJConsoleWebphere
JConsole是JDK里自带的一个工具,可以监测Java程序运行时所有对象的申请、释放等动作,将内存管理的所有信息进行统计、分析、可视化。我们可以根据这些信息判断程序是否有内存泄漏问题。
使用JConsole工具来分析WAS的JVM问题,需要进行相关的配置。
首先我们看WAS服务器端的配置.
1、登录was控制台https://10.4.119.18
- 自定义annotation
120153216
annotation
Java annotation 自定义注释@interface的用法 一、什么是注释
说起注释,得先提一提什么是元数据(metadata)。所谓元数据就是数据的数据。也就是说,元数据是描述数据的。就象数据表中的字段一样,每个字段描述了这个字段下的数据的含义。而J2SE5.0中提供的注释就是java源代码的元数据,也就是说注释是描述java源
- CentOS 5/6.X 使用 EPEL YUM源
2002wmj
centos
CentOS 6.X 安装使用EPEL YUM源1. 查看操作系统版本[root@node1 ~]# uname -a Linux node1.test.com 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux [root@node1 ~]#
- 在SQLSERVER中查找缺失和无用的索引SQL
357029540
SQL Server
--缺失的索引
SELECT avg_total_user_cost * avg_user_impact * ( user_scans + user_seeks ) AS PossibleImprovement ,
last_user_seek ,
 
- Spring3 MVC 笔记(二) —json+rest优化
7454103
Spring3 MVC
接上次的 spring mvc 注解的一些详细信息!
其实也是一些个人的学习笔记 呵呵!
- 替换“\”的时候报错Unexpected internal error near index 1 \ ^
adminjun
java“\替换”
发现还是有些东西没有刻子脑子里,,过段时间就没什么概念了,所以贴出来...以免再忘...
在拆分字符串时遇到通过 \ 来拆分,可是用所以想通过转义 \\ 来拆分的时候会报异常
public class Main {
/*
- POJ 1035 Spell checker(哈希表)
aijuans
暴力求解--哈希表
/*
题意:输入字典,然后输入单词,判断字典中是否出现过该单词,或者是否进行删除、添加、替换操作,如果是,则输出对应的字典中的单词
要求按照输入时候的排名输出
题解:建立两个哈希表。一个存储字典和输入字典中单词的排名,一个进行最后输出的判重
*/
#include <iostream>
//#define
using namespace std;
const int HASH =
- 通过原型实现javascript Array的去重、最大值和最小值
ayaoxinchao
JavaScriptarrayprototype
用原型函数(prototype)可以定义一些很方便的自定义函数,实现各种自定义功能。本次主要是实现了Array的去重、获取最大值和最小值。
实现代码如下:
<script type="text/javascript">
Array.prototype.unique = function() {
var a = {};
var le
- UIWebView实现https双向认证请求
bewithme
UIWebViewhttpsObjective-C
什么是HTTPS双向认证我已在先前的博文 ASIHTTPRequest实现https双向认证请求
中有讲述,不理解的读者可以先复习一下。本文是用UIWebView来实现对需要客户端证书验证的服务请求,网上有些文章中有涉及到此内容,但都只言片语,没有讲完全,更没有完整的代码,让人困扰不已。但是此知
- NoSQL数据库之Redis数据库管理(Redis高级应用之事务处理、持久化操作、pub_sub、虚拟内存)
bijian1013
redis数据库NoSQL
3.事务处理
Redis对事务的支持目前不比较简单。Redis只能保证一个client发起的事务中的命令可以连续的执行,而中间不会插入其他client的命令。当一个client在一个连接中发出multi命令时,这个连接会进入一个事务上下文,该连接后续的命令不会立即执行,而是先放到一个队列中,当执行exec命令时,redis会顺序的执行队列中
- 各数据库分页sql备忘
bingyingao
oraclesql分页
ORACLE
下面这个效率很低
SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM IPAY_RCD_FS_RETURN order by id desc) A ) WHERE RN <20;
下面这个效率很高
SELECT A.*, ROWNUM RN FROM (SELECT * FROM IPAY_RCD_
- 【Scala七】Scala核心一:函数
bit1129
scala
1. 如果函数体只有一行代码,则可以不用写{},比如
def print(x: Int) = println(x)
一行上的多条语句用分号隔开,则只有第一句属于方法体,例如
def printWithValue(x: Int) : String= println(x); "ABC"
上面的代码报错,因为,printWithValue的方法
- 了解GHC的factorial编译过程
bookjovi
haskell
GHC相对其他主流语言的编译器或解释器还是比较复杂的,一部分原因是haskell本身的设计就不易于实现compiler,如lazy特性,static typed,类型推导等。
关于GHC的内部实现有篇文章说的挺好,这里,文中在RTS一节中详细说了haskell的concurrent实现,里面提到了green thread,如果熟悉Go语言的话就会发现,ghc的concurrent实现和Go有点类
- Java-Collections Framework学习与总结-LinkedHashMap
BrokenDreams
LinkedHashMap
前面总结了java.util.HashMap,了解了其内部由散列表实现,每个桶内是一个单向链表。那有没有双向链表的实现呢?双向链表的实现会具备什么特性呢?来看一下HashMap的一个子类——java.util.LinkedHashMap。
- 读《研磨设计模式》-代码笔记-抽象工厂模式-Abstract Factory
bylijinnan
abstract
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
package design.pattern;
/*
* Abstract Factory Pattern
* 抽象工厂模式的目的是:
* 通过在抽象工厂里面定义一组产品接口,方便地切换“产品簇”
* 这些接口是相关或者相依赖的
- 压暗面部高光
cherishLC
PS
方法一、压暗高光&重新着色
当皮肤很油又使用闪光灯时,很容易在面部形成高光区域。
下面讲一下我今天处理高光区域的心得:
皮肤可以分为纹理和色彩两个属性。其中纹理主要由亮度通道(Lab模式的L通道)决定,色彩则由a、b通道确定。
处理思路为在保持高光区域纹理的情况下,对高光区域着色。具体步骤为:降低高光区域的整体的亮度,再进行着色。
如果想简化步骤,可以只进行着色(参看下面的步骤1
- Java VisualVM监控远程JVM
crabdave
visualvm
Java VisualVM监控远程JVM
JDK1.6开始自带的VisualVM就是不错的监控工具.
这个工具就在JAVA_HOME\bin\目录下的jvisualvm.exe, 双击这个文件就能看到界面
通过JMX连接远程机器, 需要经过下面的配置:
1. 修改远程机器JDK配置文件 (我这里远程机器是linux).
 
- Saiku去掉登录模块
daizj
saiku登录olapBI
1、修改applicationContext-saiku-webapp.xml
<security:intercept-url pattern="/rest/**" access="IS_AUTHENTICATED_ANONYMOUSLY" />
<security:intercept-url pattern=&qu
- 浅析 Flex中的Focus
dsjt
htmlFlexFlash
关键字:focus、 setFocus、 IFocusManager、KeyboardEvent
焦点、设置焦点、获得焦点、键盘事件
一、无焦点的困扰——组件监听不到键盘事件
原因:只有获得焦点的组件(确切说是InteractiveObject)才能监听到键盘事件的目标阶段;键盘事件(flash.events.KeyboardEvent)参与冒泡阶段,所以焦点组件的父项(以及它爸
- Yii全局函数使用
dcj3sjt126com
yii
由于YII致力于完美的整合第三方库,它并没有定义任何全局函数。yii中的每一个应用都需要全类别和对象范围。例如,Yii::app()->user;Yii::app()->params['name'];等等。我们可以自行设定全局函数,使得代码看起来更加简洁易用。(原文地址)
我们可以保存在globals.php在protected目录下。然后,在入口脚本index.php的,我们包括在
- 设计模式之单例模式二(解决无序写入的问题)
come_for_dream
单例模式volatile乱序执行双重检验锁
在上篇文章中我们使用了双重检验锁的方式避免懒汉式单例模式下由于多线程造成的实例被多次创建的问题,但是因为由于JVM为了使得处理器内部的运算单元能充分利用,处理器可能会对输入代码进行乱序执行(Out Of Order Execute)优化,处理器会在计算之后将乱序执行的结果进行重组,保证该
- 程序员从初级到高级的蜕变
gcq511120594
框架工作PHPandroidhtml5
软件开发是一个奇怪的行业,市场远远供不应求。这是一个已经存在多年的问题,而且随着时间的流逝,愈演愈烈。
我们严重缺乏能够满足需求的人才。这个行业相当年轻。大多数软件项目是失败的。几乎所有的项目都会超出预算。我们解决问题的最佳指导方针可以归结为——“用一些通用方法去解决问题,当然这些方法常常不管用,于是,唯一能做的就是不断地尝试,逐个看看是否奏效”。
现在我们把淫浸代码时间超过3年的开发人员称为
- Reverse Linked List
hcx2013
list
Reverse a singly linked list.
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
p
- Spring4.1新特性——数据库集成测试
jinnianshilongnian
spring 4.1
目录
Spring4.1新特性——综述
Spring4.1新特性——Spring核心部分及其他
Spring4.1新特性——Spring缓存框架增强
Spring4.1新特性——异步调用和事件机制的异常处理
Spring4.1新特性——数据库集成测试脚本初始化
Spring4.1新特性——Spring MVC增强
Spring4.1新特性——页面自动化测试框架Spring MVC T
- C# Ajax上传图片同时生成微缩图(附Demo)
liyonghui160com
1.Ajax无刷新上传图片,详情请阅我的这篇文章。(jquery + c# ashx)
2.C#位图处理 System.Drawing。
3.最新demo支持IE7,IE8,Fir
- Java list三种遍历方法性能比较
pda158
java
从c/c++语言转向java开发,学习java语言list遍历的三种方法,顺便测试各种遍历方法的性能,测试方法为在ArrayList中插入1千万条记录,然后遍历ArrayList,发现了一个奇怪的现象,测试代码例如以下:
package com.hisense.tiger.list;
import java.util.ArrayList;
import java.util.Iterator;
- 300个涵盖IT各方面的免费资源(上)——商业与市场篇
shoothao
seo商业与市场IT资源免费资源
A.网站模板+logo+服务器主机+发票生成
HTML5 UP:响应式的HTML5和CSS3网站模板。
Bootswatch:免费的Bootstrap主题。
Templated:收集了845个免费的CSS和HTML5网站模板。
Wordpress.org|Wordpress.com:可免费创建你的新网站。
Strikingly:关注领域中免费无限的移动优
- localStorage、sessionStorage
uule
localStorage
W3School 例子
HTML5 提供了两种在客户端存储数据的新方法:
localStorage - 没有时间限制的数据存储
sessionStorage - 针对一个 session 的数据存储
之前,这些都是由 cookie 完成的。但是 cookie 不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得 cookie 速度很慢而且效率也不