Modern C Design, Spring Framework和Ruby的Mixi...
来源:百度文库 编辑:神马文学网 时间:2024/04/27 21:57:40
Modern C++ Design, Spring Framework和Ruby的Mixin....
作者:江南白衣
《Modern C++ Design》里的Policy-Base Class是Cpper得意的一样事情;
Spring 式IoC container 的依赖注入是Javaer得意的一样事情;
Ruby的Mixin特性是Rubyer得意的一样事情。
有趣的是,各自得意的事情,指向的是同一个问题:多重行为的组合。
1 .Policy-Base是混合使用模板与C++的多重继承达成的:
最终类多重继承模版类,由模版传入实际的行为类(Policy Class)。
template
class SmartPtr : public CheckingPolicy
{...};
typedef SmartPtr noCheckPtr;
上段代码,在编译期把NoChecking类传入到SmartPtr中,组合成noCheckPtr类。而实战中,还会用到"template template parameter"....
2 .Java则紧守最古老的委托模式来达成:
最终类拥有实际施行各种行为的行为类的指针。所有最终类的方法都将委托给行为类来执行。如果行为多样时,采用基于接口编程。同时利用Java的反射特质,用IOC Container根据配置实现注入的自动化。
3. Ruby则倚仗自己的动态特性,直接在语言中内建了Mixin特性。
module Greetable
def greet
puts "Your age is, " + self.age
end
end
class Person
include Greetable
def initialize(name, age)
@name=name
@age=age
end
attr_reader :age
end
person=Person.new("Bruce",40)
person.greet
Your age is 40.
此段代码将Greetable类Minxin进了Person类里头,让其拥有了greet方法。
也多亏了Ruby的动态性,让Greetable可以打印一个自身毫不知情的,其实属于Person的属性age.
就因为同一样事情还有着C++模板、传统Delegate和新兴动态Minxin的选择,让我们这些工蚁,还觉得有些许的自由和左顾右盼的乐趣。
发表于 2005-11-01 15:11江南白衣 阅读(5526)评论(7) 编辑 收藏引用 所属分类:全部文档
360pskdocImg_0
作者:江南白衣
《Modern C++ Design》里的Policy-Base Class是Cpper得意的一样事情;
Spring 式IoC container 的依赖注入是Javaer得意的一样事情;
Ruby的Mixin特性是Rubyer得意的一样事情。
有趣的是,各自得意的事情,指向的是同一个问题:多重行为的组合。
1 .Policy-Base是混合使用模板与C++的多重继承达成的:
最终类多重继承模版类,由模版传入实际的行为类(Policy Class)。
template
class SmartPtr : public CheckingPolicy
{...};
typedef SmartPtr
上段代码,在编译期把NoChecking类传入到SmartPtr中,组合成noCheckPtr类。而实战中,还会用到"template template parameter"....
2 .Java则紧守最古老的委托模式来达成:
最终类拥有实际施行各种行为的行为类的指针。所有最终类的方法都将委托给行为类来执行。如果行为多样时,采用基于接口编程。同时利用Java的反射特质,用IOC Container根据配置实现注入的自动化。
3. Ruby则倚仗自己的动态特性,直接在语言中内建了Mixin特性。
module Greetable
def greet
puts "Your age is, " + self.age
end
end
class Person
include Greetable
def initialize(name, age)
@name=name
@age=age
end
attr_reader :age
end
person=Person.new("Bruce",40)
person.greet
Your age is 40.
此段代码将Greetable类Minxin进了Person类里头,让其拥有了greet方法。
也多亏了Ruby的动态性,让Greetable可以打印一个自身毫不知情的,其实属于Person的属性age.
就因为同一样事情还有着C++模板、传统Delegate和新兴动态Minxin的选择,让我们这些工蚁,还觉得有些许的自由和左顾右盼的乐趣。
发表于 2005-11-01 15:11江南白衣 阅读(5526)评论(7) 编辑 收藏引用 所属分类:全部文档
360pskdocImg_0
Modern C Design, Spring Framework和Ruby的Mixi...
Spring Framework介紹
Introducing to Spring Framework
Spring Framework 开发参考手册
Spring Framework 开发参考手册
Spring Framework 开发参考手册
Spring Framework介紹
Spring Framework 开发参考手册
三大编程语言的性能PK--Java, C/C++和Ruby
ruby和python的比较
利用Jmail发送和接收邮件(C#) - .NET Framework
Spring - Java/J2EE Application Framework
Spring - Java/J2EE Application Framework
12.2.?Hibernate - Spring Framework reference ...
使用 Spring Framework 设计和开发 SCA 组件,第 1 部分: 三剑客:Spring、SCA 和 Apache Tuscany
spring和ibatis的
Design Patterns in C #
[下载]几本spring的电子书 (新增两本) (Spring Framework|逻辑层) - [Matrix - 与 Java 共舞]
几本spring的电子书 (新增两本) (Spring Framework|逻辑层) - [Matrix - 与 Java 共舞]
SWIG,把C/C API 导出成Java,C#,Python,Ruby,Php的类库...
Spring Framework标记库初学者指南
Introducing to Spring Framework(中文修订版)
Spring Framework之最佳实践二
Spring Framework之最佳实践一