模板类模式

如果希望父类中的方法不能被子类所覆盖,用final关键字

 

 

对于若干个方法,取出相同的子方法,将不同的子方法进行泛化,封装在新的模板类(是个抽象类)中,不同的子方法规定为abstarct的,在子类中去实现它。

还可以在模板类中加入一个hook(钩子),这个方法可以作为条件控制,影响抽象类的算法流程,如决定是否要执行加入调料的步骤,可以征求客户的请求。即当步骤方法是可选的时候,用钩子。在java中,JFrame中的paint()方法就是一个钩子,再比如,Applet中的很多方法都是钩子。钩子是一个方法,他在抽象内中不做事情或者说只做默认的事情,子类可以选择要不要覆盖他。

 

 

 

 

算法模板:比如说对鸭子数组进行排序(按重量),调用Array的静态方法sort()方法,此sort()方法中的鸭子之间的比较函数CompareTo()必须由鸭子类自定义决定(自行提供比较大小的算法部分),具体是Duck类实现Comparable接口,实现该接口中的方法CompareTo()。——————这个在java中比较普遍,如InputStream类中的read()方法。用了下,感觉好强大。

 

 

设计模式在书中很简单,很明了,但是来到荒野中,不要期望一眼就能够认出他们,尽管他们很普遍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值