本文主要是介绍mixin 模式看起来好像装饰器模式,究竟是一个什么样的模式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
mixin模式就是装饰器模式。
单利模式呢?呵呵,其实就是全局变量/对象。
当过程式开发变得越来越复杂,代码越难以维护,于是,出现了软件危机,解决软件的危机的方式是什么呢?新的开发模式,也就是 OO,面向对象。
但是面向对象是银弹吗?至少最开始的时候是,很多极端的语言说自己是纯OO,一切都是对象,看似很完美,但是很多东西根本就不需要用对象的,而且频繁产生对象也是一件麻烦事,还有些对象整个软件周期内只要一个就可以了,比如数据库连接池,或者 sun 对象(毕竟太阳只有一个),但是 OO 的思想迫使他们不能使用全局变量,于是,他们 OOer 开始想办法,也就是单利模式。
mixin 也是这种情况,他最开始出现在动态语言,说的具体点,主意是哪些另类 OO 语言,即没有类的 OO 语言,比如js。这就造成了 mixin 和装饰器模式的一个本质不同:基于类,还是基于对象。
mixin 直接修改对象的属性,将两个对象 mixin 在一起。而装饰器模式不是,装饰器模式所依赖的类是固定的,而且需要很多很多很多,这样才可以在创建对象是,用不同的类(主意是类,不是对象)来装饰这个新对象。
附:前几天翻译了一篇关于 javascript 的 mixin 文章:http://justjavac.com/javascript/2012/12/11/are-your-mixins-ecmascript-5-compatible.html
这篇关于mixin 模式看起来好像装饰器模式,究竟是一个什么样的模式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!