- 博客(21)
- 资源 (52)
- 收藏
- 关注
原创 优秀程序设计的18大原则
优秀程序设计的18大原则1、避免重复原则(DRY - Don’t repeat yourself)编程的最基本原则是避免重复。在程序代码中总会有很多结构体,如循环、函数、类等等。一旦你重复某个语句或概念,就很容易形成一个抽象体。2、抽象原则(Abstraction Principle)与DRY原则相关。要记住,程序代码中每一个重要的功能,只能出现在源代码的一个位置。
2016-07-11 17:07:57 6276
原创 C++11标准库新加功能详解
一、Lambda表达式的引进 Lambda表达式的形式是这样的:[capture](parameters)->return-type{body}来看个计数某个字符序列中有几个大写字母的例子:intmain(){chars[]="HelloWorld!";intUppercase=0;//mod
2016-07-24 15:57:30 4571
原创 组合/聚合复用原则详解--七大面向对象设计原则(7)
组合/聚合复用原则来源: 在面向对象的设计中,如果直接继承基类,会破坏封装,因为继承将基类的实现细节暴露给子类;如果基类的实现发生改变,则子类的实现也不得不发生改变;从基类继承而来的实现是静态的,不可能在运行时发生改变,没有足够的灵活性。于是就提出了组合/聚合复用原则,也就是在实际开发设计中,尽量使用合成/聚合,不要使用类继承。即在一个新的对象里面使用一些已有的对象,使之成为新对象
2016-07-19 21:56:13 11914 1
原创 迪米特法则详解--七大面向对象设计原则(6)
迪米特法则的来源: 迪米特法则又叫最少知道原则,最早是在1987年由美国Northeastern University的Ian Holland提出。类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。于是就提出了迪米特法则。通俗的来讲,就是一个类对自己依赖的类知道的越少越好。也就是说,对于被依赖的类来说,无论逻辑多么复杂,都尽量地的将逻辑封装在类的内
2016-07-19 19:07:42 10862
原创 开放-封闭原则详解--七大面向对象设计原则(5)
开闭原则来源: 在软件的生命周期内,因为变化、升级和维护等原因需要对软件原有代码进行修改时,可能会给旧代码中引入错误,也可能会使我们不得不对整个功能进行重构,并且需要原有代码经过重新测试。开闭原则作用: 当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化; 开闭原则可是保持原有的测试代码仍然能够正常
2016-07-16 07:20:22 1241
原创 接口隔离原则详解--七大面向对象设计原则(4)
接口隔离原则的来源: 类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类B和类D必须去实现他们不需要的方法。因为使用多个专门的接口比使用单一的总接口要好,所以便提出了接口隔离原则。接口隔离原则的目的: 将臃肿的接口I拆分为独立的几个接口,类A和类C分别与他们需要的接口建立依赖关系。也就是采用接口隔离原则。接口隔离原则的两种定义
2016-07-15 22:30:47 2144 1
原创 依赖倒置原则详解--七大面向对象设计原则(3)
依赖倒置原则来源: 类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般是高层模块,负责复杂的业务逻辑;类B和类C是低层模块,负责基本的原子操作;假如修改类A,会给程序带来不必要的风险。 依赖倒置原则(Dependence Inversion Principle)是程序要依赖于抽象接口,不要依赖于具体实现。简单
2016-07-15 19:26:40 3286
原创 Centos配置Nginx负载均衡详解
在日常网络数据开发中,我们对服务器的处理能力要求很高,但是在服务器有限的情况下,怎么才能更好的利用服务器资源,使得我们的服务器最大限度发挥自己的作用,负载均衡是一种很好的办法。 哪什么是Nginx负载均衡呢? Nginx是一个轻量级的、高性能的WebServer,他主要可以干下面两件事:(1).作为http服务器(和apache的效果一样)(2).作为反向代
2016-07-15 10:11:21 5603
原创 里氏替换原则详解--七大面向对象设计原则(2)
里氏替换原则来源: 我们都知道面向对象有三大特性:封装、继承、多态。所以我们在实际开发过程中,子类在继承父类后,根据多态的特性,可能是图一时方便,经常任意重写父类的方法,那么这种方式会大大增加代码出问题的几率。比如下面场景:类C实现了某项功能F1。现在需要对功能F1作修改扩展,将功能F1扩展为F,其中F由原有的功能F1和新功能F2组成。新功能F由类C的子类C1来完成,则子类C1在
2016-07-14 08:56:19 3023 3
原创 单一职责原则详解--七大面向对象设计原则(1)
单一职责原则来源: 定义:单一职责就是一个类负责一项职责.就一个类而言,应该只专注于做一件事和仅有一个引起它变化的原因。 所谓职责,我们可以理解为功能,就是设计的这个类功能应该只有一个,而不是两个或更多。也可以理解为引用变化的原因,当你发现有两个变化会要求我们修改这个类,那么你就要考虑撤分这个类了。因为职责是变化的一个轴线,当需求变化时,该变化会反映类的职责的变
2016-07-14 08:48:40 1956
原创 Interpreter 模式详解--设计模式(23)
Interpreter 模式的来源: Interpreter(解释器)模式是一种特殊的设计模式,它建立一个解释器(Interpreter),对于特定的计算机程序设计语言,用来解释预先定义的文法。简单地说,Interpreter模式是一种简单的语法解释器构架。解释器模式属于行为模式,给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。
2016-07-09 08:45:27 7752
原创 Iterator模式详解--设计模式(22)
Iterator模式来源: 迭代器(Iterator)模式,又叫做游标(Cursor)模式。GOF给出的定义为:提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节。从定义可见,迭代器模式是为容器而生。Iterator模式作用:(1).它支持以不同的方式遍历一个聚合复杂的聚合可用多种方式进行遍历,如二叉树的遍历,可以采用前序、中序或后
2016-07-08 08:58:14 1224
原创 Chain of Responsibility模式详解--设计模式(21)
Chain of Responsibility模式来源: 熟悉VC/MFC的都知道,VC是“基于消息,事件驱动”,消息在VC开发中起着举足轻重的作用。在MFC中,消息是通过一个向上递交的方式进行处理,例如个WM_COMMAND消息的处理流程: 注明:有关MFC消息处理更加详细信息,请参考候捷先生的《深入浅出MFC》。 MFC提供了消息的处理的链式处理策略,
2016-07-08 08:43:19 915
原创 Visitor模式详解--设计模式(20)
Visitor模式来源:Visitor模式作用:Visitor模式UML结构图如图1所示: Visitor模式来源:Visitor模式来源:
2016-07-07 08:40:36 6439
原创 Command模式详解--设计模式(19)
Memento模式来源: Command模式通过将请求封装到一个对象(Command)中,并将请求的接受者存放到具体的ConcreteCommand类中(Receiver)中,从而实现调用操作的对象和操作的具体实现者之间的解耦。Memento模式作用: 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可
2016-07-06 08:58:20 7272
转载 中小型网站架构分析和优化
以上网站架构广泛运用中大型网站中,本文从架构每一层分析所用主流技术和解决手段,有助于初入网站运维朋友们,进一步对网站架构认识,从而自己形成一套架构概念。第一层:CDN国内网络分布主要南电信北联通,造成跨地区访问延迟大问题,对于有一定访问量网站来说,增加CDN(内容分发网络)层可有效改善此现象,也是网站加 速的最好选择。CDN把网站页面缓存到全国分布的节点上,用户访问时从最近的机房获
2016-07-05 09:30:48 675
原创 Memento模式详解--设计模式(17)
Memento模式来源: 我们在进行软件系统的设计时候是要给用户后悔的权利(实际上可能也是用户要求的权利:)),我们对一些关键性的操作肯定需要提供诸如撤销(Undo)的操作。那这个后悔药就是Memento模式提供的。Memento模式作用: 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可将该对象恢复到原先保存的状态
2016-07-02 08:48:07 1087
原创 Observer模式详解--设计模式(16)
Observer模式来源: Observer模式应该可以说是应用最多、影响最广的模式之一。 因为Observer的一个实例Model/View/Control(MVC)结构在系统开发架构设计中有着很重要的地位和意义,MVC实现了业务逻辑和表示层的解耦。在MFC中,Doc/View(文档视图结构)提供了实现MVC的框架结构(有一个从设计模式(Observer模
2016-07-02 08:47:42 3123
原创 C++状态模式详解--设计模式(15)
State模式来源: 每个人、事物在不同的状态下会有不同表现(动作),而一个状态又会在不同的表现下转移到下一个不同的状态(State)。最简单的一个生活中的例子就是:地铁入口处,如果你放入正确的地铁票,门就会打开让你通过。在出口处也是验票,如果正确你就可以ok,否则就不让你通过(如果你动作野蛮,或许会有报警(Alarm))。 有限状态自动机(FSM)也是一个典型的状态不同,...
2016-07-01 08:51:21 9696 4
原创 C++策略模式详解--设计模式(14)
Strategy模式来源: 在软件开发中也常常遇到类似的情况,实现某一个功能有多种算法或者策略,我们可以根据环境或者条件的不同选择不同的算法或者策略来完成该功能。如查找、排序等,一种常用的方法是硬编码(Hard Coding)在一个类中,如需要提供多种查找算法,可以将这些算法写到一个类中,在该类中提供多个方法,每一个方法对应一个具体的查找算法;当然也可以将这些查找算法封装在一个统一的方...
2016-07-01 08:51:02 1261
Navicat安装指导及安装资源
2024-03-23
vncserver和vncviewer
2017-06-01
大数据资料集锦
2016-03-30
Hadoop技术全套图书
2016-03-21
jQuery瀑布流经典布局源码
2016-01-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人