摘要:
摘自:http://blog.163.com/hr_msn/blog/static/21549405120137288055250/一、抽象类: 抽象类是特殊的类,只是不能被实例化;除此以外,具有类的其他特性;重要的是抽象类可以包括抽象方法,这是普通类所不能的。抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆盖它们。另外,抽象类可以派生自一个抽象类,可以覆盖基类的抽象方法也可以不覆盖,如果不覆盖,则其派生类必须覆盖它们。 二、接口: 接口是引用类型的,类似于类,和抽象类的相似之处有三点:1、不能实例化; 2、包含未实现的方法声明; 3、派生类必须实现未实现的方法,抽象类是抽象方法,接 阅读全文
posted @ 2013-10-28 15:06
nygfcn
阅读(179)
评论(0)
推荐(0)
摘要:
Component定义一个对象接口,可以给对象动态地添加职责。ConcreteComponent定义一个具体的对象,也可以给这个对象添加一些职责。Decorator,装饰抽象类,继承了Component,从外类来扩展Component类的功能,但对于Component来说,无需知道Decorator的存在,至于ConcreteDecorator是具体的装饰对象,起到给Component添加职责的功能。代码:/// /// 装饰行为的抽象 /// public abstract class Component { //操作 public a... 阅读全文
posted @ 2013-10-28 14:47
nygfcn
阅读(165)
评论(0)
推荐(0)
摘要:
组合模式的透明方式:Component中声明所有用来管理子对象的方法,包括Add Remove等,这样实现Component的所有子类都具备了Add Remove,这样做的好处是叶节点和枝节点对于外界没有区别,它们具备完全一致的行为接口,问题是leaf类本身不具备add remove 方法的功能所以实现它是没有意义的。安全方式:Component接口中不去声明add和remove方法,子类的leaf不用实现它,而是在Composite声明所有用来管理子类对象的方法,不过由于不够透明,所以树叶和树枝类将不具有相同的接口,客户端的调用需要做相应的判断,不方便。抽象类: public abst... 阅读全文
posted @ 2013-10-28 11:08
nygfcn
阅读(153)
评论(0)
推荐(0)
浙公网安备 33010602011771号