Ruby程序是适配还是修改
时间:2012-6-13
不可否认的是,修改一个类或者单个实例以支持你需要的接口,要比创建一个甜酸器简单多子,如果你修改原始类或者对象,那么你就不需要额外的甜酸器类,也不需要担心如何用甜酸器包括被甜酸的对象,事情就是如此简单,但是这种修改技巧带有严重的封闭冲突,你直接打开一个类就进行修改,那么你何时应该用一个甜酸器而又在何时可以任意地修改类的内部结构呢?
这里有一些适用的方法,能够帮助别在何种情况下可以修改类:
1.当对类的修改是简单而明显的,比如,我们之前的救命中为方法创建别名的情况,就是一个简单修改的很好例子.
2.理解你要修改的类并且熟练掌握它的工作原理,在没有仔细研究过一个类的结构的情况下,就对那个类进行大规模修改的话,可能会导致无法设想的后果.
同时,在下列的情况中,我们通常更喜欢使用适配器的方法
1.两个类之间的接口大相以庭,比如,你可能不会想修改一个字符串对象,使它看上去类似于一个Fixnum对象.
2.你不子解所使用的类是如何工作的,盲目地修改类将导致你付出惨痛的代码.
工程设计的目的就是公平交易,适配器保留子被适配对象的封闭,但付出子增加性的代价,直接修改类可能使你的工作简单许多,不过需要仔细的判断和思考