04 2013 档案
摘要:就Java语言体系来说,GOF是Java基础知识和J2EE框架知识之间一座隐性的"桥"。 会Java的人越来越多,但是一直徘徊在语言层次的程序员不在少数,真正把握Java中接口或抽象类的应用不是很多,大家经常以那些技术只适合大型项目为由,避开或忽略它们,实际中,Java的接口或抽象类是真正体现Java思想的核心所在,这些你都将在GoF里领略到它们变幻无穷的魔力。 GoF表面上似乎也是一种具体的"技术",而且新的设计模式不断在出现,设计模式自有其自己的发展轨道,而这些似乎和J2EE,.Net等技术也无关! 实际上,GoF并不是一种具体"技术&qu
阅读全文
摘要:工厂模式看了很多,属这一篇通俗易懂了。新手建议从这入门。这篇文章说一下简单工厂,工厂,抽象工厂的概念和应该场景首先,从简单工厂开始:见上图,可以看出来,最核心的部分就是工厂类了,所有的变化都封装在这个工厂类里面,Client不用关心类的实例化但是,可谓成也工厂类,败也工厂类如果,实例化的对应有所变化,就需要修改核心工厂类,违背了开放-封闭原则(对修改封闭,对扩展开放)C#版本代码实现Simple FactorySimplyFactory public abstract class Simplyfactory { public abstract string C...
阅读全文
摘要:对象:是一个自包含的实体. 用一组可识别的特性和行为来标识。类:就是具有相同的属性和功能的对象的抽象的集合。Class是定义类的关键字。类名称首字母要大写. 多个单词则各个首字母大写。实例:就是一个真实的对象. 比如我们都是‘人’,而你和我其实就是‘人’类的实例了。而实例化就是创建对象的过程,使用new关键字来创建。构造方法:又叫构造函数。实就是对类进行初始化。构造方法与类同名,无返回值,也不需要void,在new 时候调用。所有类都有构造方法, 如果你不编码则系统默认生成空的构造方法,若你有定义的构造方法,那么默认的构造方法就会失效了。方法重载:提供了创建同名的多个方法的能力,但这些方法需使
阅读全文
摘要:这几天重新看了一遍《大话设计模式》,发现果然有不同的感悟,而且自己也上网找了《敏捷软件开发—原则、模式与实践》一书来看,那本书的序言中有一段话我觉得很有道理:“美的东西比丑的东西创建起来更廉价,也更快捷。”设计一个软件不关要追求代码的优雅问题,更关乎生产成本等。技术大师们在对软件架构的研究中经历了很长时间的摸索,从面向过程到面向对象,从设计原则到设计模式,总结了许多设计上的经典法则,而我们就只是站在巨人的肩膀上眺望远方而已。 从《大话设计模式》中,大家一定会发现其中的经典的23个模式背后,其实都遵循着一些基本的原则的。而设计原则又由设计模式来实现,这就是二者相辅相成的关系,所以了解原则对于..
阅读全文
摘要:在UML类图中,常见的有以下几种关系:泛化(Generalization),实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 1.泛化(Generalization) 【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。例如:老虎是动物的一种,即有老虎的特性也有动物的共性。 【箭头指向】:带三角箭头的实线,箭头指向父类 2.实现(Realization) 【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现. 【箭头指...
阅读全文
摘要:索引器是一种特殊的类成员,它能够让对象以类似数组的方式来存取,使程序看起来更为直观,更容易编写。1、索引器的定义C#中的类成员可以是任意类型,包括数组和集合。当一个类包含了数组和集合成员时,索引器将大大简化对数组或集合成员的存取操作。定义索引器的方式与定义属性有些类似,其一般形式如下:[修饰符]数据类型 this[索引类型 index]{ get{//获得属性的代码} set{//设置属性的代码}}修饰符包括public,protected,private,internal,new,virtual,sealed,override, abstract,extern.数据类型是表示将要存取的数组或
阅读全文
摘要:属性:get { //读属性代码 } set { //写属性代码 }public class Person{private string name;public string Name{ get{return name;} set{ name=value;}}}属性可以忽略get或set访问器,但是不能两个都忽略.set访问器包含一个隐藏的参数value,该参数包含从客户代码传送过来的值.公共属性及其底层类型最好使用相同的名称,因为它们之间的联系将很清晰.字段使用camelCase(xxXxx),如dateOfBirth,而属性使用PacalCase(XxXxx),如DateOfBirth.一
阅读全文
摘要:今天碰到要在一个页面获取另外一个页面url传过来的参数,一开始很本能的想到了用 split("?")这样一步步的分解出需要的参数。后来想了一下,肯定会有更加简单的方法的!所以在网上找到了两个很又简单实用的方法,mark下方法一:正则分析法function getQueryString(name) { var reg =new RegExp("(^|&)"+ name +"=([^&]*)(&|$)", "i"); var r = window.location.search.substr(1
阅读全文
摘要:本文意在巩固基础知识,并不是对其进行深入剖析,如若对各位高手没有什么作用,请绕过。本文为原创文,所有示例均是博主测试过的,欢迎大家批评指正,如有转载请标明出处,谢谢。继承、封装和多态是面向对象编程的重要特性。其成员被继承的类叫基类也称父类,继承其成员的类叫派生类也称子类。派生类隐式获得基类的除构造函数和析构函数以外的所有成员。派生类只能有一个直接基类,所以C#并不支持多重继承,但一个基类可以有多个直接派生类。继承是可以传递的。即:如果 ClassB 派生出 ClassC,ClassA 派生出 ClassB,则 ClassC 会继承 ClassB 和 ClassA 中声明的成员。 class A
阅读全文
摘要:在这三种类型之间存在下面的继承规律:* 普通类可以继JAVA——继承、多态、重载和重写承(extends)普通类,可以继承(extends)抽象类,可以继承(implements)接口。* 抽象类可以继承(extends)普通类,可以继承(extends)抽象类,可以继承(implements)接口。* 接口只能继承(extends)接口我们再来看看重载和重写,请看它们的定义:* 重写,英文名是override,是指在继承情况下,子类中定义了与其基类中方法具有相同型构的新方法,就叫做子类把基类的方法重载了。这是实现多态必须的步骤。* 重载,英文名是overload,是指在同一个类中定义了一个以
阅读全文