接口和抽象类在程序设计中的区别和定位
在开发中,很多情况下倾向于使用虚基类,而很少使用接口,有些人甚至声称接口很“鸡肋”,不知道接口可以用来做什么、怎么用。本文根据个人开发经验和阅读大型项目代码的经验总结一下接口和基类在程序设计、架构上面的区别和定位。
在开发中,很多情况下倾向于使用虚基类,而很少使用接口,有些人甚至声称接口很“鸡肋”,不知道接口可以用来做什么、怎么用。本文根据个人开发经验和阅读大型项目代码的经验总结一下接口和基类在程序设计、架构上面的区别和定位。
分化(differentiation)是从细胞分化中衍生的概念,指一个类的不同实例拥有不同的行为和特征,选择性开启某些属性或者方法。
多例模式(Multiton)区别于单例模式,类型在整个进程内同时可以有多个实例,可以不限制实例个数,也可以限制实例个数,且在类型内部创建、管理实例,并向外部提供实例。多例模式的应用包括对象池、线程池等。多例模式不像单例模式那样通过一个Multiton模板去实现,是比较隐晦的,但应用很多,简单的说就是集中创建、管理、销毁某个类型的实例,属于一种创建型模式。 阅读全文...
装饰器(Decorator)有的地方叫包装器(Wrapper)用来对类型进行扩展,但并不直接继承这个类型,而是继承自类型的基类,并通过组合方式引用此类型。这样不会产生拥有同样特性的重复类,只提供额外的新特性。也可以称作包装器(Wrapper),一个包装器是对另一个类型的包装。
共生(Symbiotic Objects)指紧密联系的一些对象,拥有相同的生命周期,一荣俱荣,一损俱损,当其中一个被销毁时,其他共生对象也会一起销毁,这些对象共同组成一个共生体。
在开发中经常使用协程做并发和异步,协程的实现分为有栈协程(stackful)和无栈协程(stackless)两种,其中C#的yield return实现是无栈协程。