摘要:
一、从两者形态来区分 A 抽象类可以给出一些成员的实现,接口则不可以给出成员的实现。 B 抽象类的成员可以被子类部分实现,接口的成员则需要实现类全部实现。 C 一个类只能继承一个抽象类,但可以实现多个接口。二、从设计角度来区分 A 类是对对象的抽象,抽象类是对类的抽象,接口是行为的抽象。 B 如果行为跨越不同类型的对象,可以使用接口。对于一些相似的类对象,可以用继承抽象类。 C 抽象类是从子类中发现了公共的东西,泛化出父类,然后子类继承父类,而接口根本就不知道子类的存在,方法如何实现还不确定。抽象类往往是通过重构得来的。抽象类一般是自底向上抽象出来的,接口则是自顶向下设计出来的。三...
阅读全文
摘要:
一、抽象(Abstraction) 简单的说,抽象(Abstraction)就是过滤掉对象一部分特性和操作直到只剩下你所需要的属性和操作。也就是说,针对你要解决的问题,哪些属性和操作是必须的,哪些属性和操作对解决问题是没有用的,只留下对解决问题有的属性的操作。对建模者来说,抽象是最重要的技术的,要搞清楚什么应该加入模型中,什么应该舍去。二、继承(inheritance) 对象的继承代表is a的关系,如果对象A和B,可以描述是B是A,则表明B可以继承A。继承者可以理解为对被继承者的特殊化,它除了具备被继承者的特性和操作外,还有自已的个性。继承者可以完全替换被继承者,反之则不成立。三、多态(..
阅读全文
摘要:
类:矩形表示法 第一行是类名,若类名称为斜体字则此类为抽象类 第二行是特性(字段或属性) 第三行是操作(方法) 在UML类图中可见性'+'表示public,'-'表示private,'#'表示protected接口: A 矩形表示法,与类图的主要区别是第一行顶端有<<interface>>符号。 B棒棒糖表示法,圆圈旁为接口的名称。UML类图中的关系 A 泛化(Generalization)关系【泛化关系相当于面向对象中的继承关系】用空心三角形+实线表示,空心三角形指向基类 B 依赖(Dependency)关系用虚线箭头表
阅读全文
摘要:
一、定义 用原型实例指定创建对象的种类,并且通过Copy这些原型来创建新对象二、UML Class Diagram: 三、实现 对于DOTNET来说,ProtoType用不着,太常见,.NET中提供了一个System.IClonable接口,其中就有一个唯一方法Clone,只需要实现这个接口就可以完成对象的创建。另外Object类中还有一个方法,MemberwiseClone,实现了浅表拷贝,浅表拷贝的意思是创建一个当前对象的新对象,然后把当前对象的非静态字段复制到新对象中。在执行复制时,对字段执行逐位复制。也就是说,如果字段是引用类型,则复制引用但不复制引用的对象;如果是值类型,则...
阅读全文
摘要:
一、定义 保证一个类仅有一个实例,并提供一个访问它的全局访问点。二、UML Class Diagram 三、实现 让类自身负责维护保存它的唯一实例,类自身保证没有其它的实例可以被创建,并且提供一个一访问实例的方法。 A、传统实现方式 public class Singleton { private static Singleton instnace; private static object syncRoot = new object(); private Singleton() { } public static Singleton GetInsta...
阅读全文