public abstract class Boy {
//收入
private double wages;
/**
* 模板方法模式:定义一个操作中算法的骨架,而将一些步骤延迟到子类中。
* 模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
*/
//生活在这座城市的成本(具体算法)
public void live_in_theCity(){
System.out.println(
"房贷六千吃穿用度两千五," +
"冉冉上幼儿园一千五," +
"人情往来六百," +
"交通费五百八," +
"物业管理三四百," +
"手机电话费两百五," +
"还有煤气水电费两百"+ "给2奶的钱"+give_money_to_Lover());//特定步骤
}
public double give_money_to_Lover(){
return 0;
}
public double getWages() {
return wages;
}
public void setWages(double wages) {
this.wages = wages;
}
}
子类不需要从写live_in_theCity业务类,因为子类只需要在业务方法中有很小的改动,
public class BeautifulGirl extends Boy {
public double give_money_to_Lover() {
return this.getWages()*0.2;
}
}
public class SensibleGirl extends Boy {
public double give_money_to_Lover() {
return this.getWages()*0.8;
}
}
通过比较我们能发现事物的本质,也能通过比较才会出现有记忆点
看下面泛化不够彻底的实现
public abstract class Boy {
//收入
private double wages;
//生活在这座城市的成本(具体算法)
public void live_in_theCity(){
System.out.println(
"房贷六千吃穿用度两千五," +
"冉冉上幼儿园一千五," +
"人情往来六百," +
"交通费五百八," +
"物业管理三四百," +
"手机电话费两百五," +
"还有煤气水电费两百钱"
}
public double getWages() {
return wages;
}
public void setWages(double wages) {
this.wages = wages;
}
}
下面是子类重写了整个业务方法,如果女友很多的话,每次的继承都要重复很多重复的代码,这是坏味道,
我们需要将它提取出来让boy更像一个模板
public class LooksMediocreGirl extends Boy{
@Override
public void live_in_theCity() {
super.live_in_theCity();
System.out.println("包我要付"+getWages()*0.3);
}
}
如果我有一百个妞怎么办了,难道要我一个个这么实现吗?需要摆脱这些纠缠
加个rate
public class Girl extends Boy {
double rate ;
public double give_money_to_Lover() {
return this.getWages()*this.getRate();
}
public double getRate() {
return rate;
}
public void setRate(double rate) {
this.rate = rate;
}
}
这样的话界面上直接加小妞要的粒度rate就OK了,不管你new多少都没问题。
和策略比的话,策略的各子类的业务方法变法比较大,模板方法各子类的业务方法变化相对很小
分享到:
相关推荐
"城市"元素可能体现在设计的线条、图形或背景图像上,以反映现代都市生活的节奏和活力。 "拍摄照片"和"商务"、"企业"、"商业"、"公司"这些关键词表明模板中可能包含了一系列与商业活动相关的高质量图片,用于展示...
7. **城市服务**:在城市商务网站中,可能会涉及到提供与城市生活相关的服务信息,如交通、餐饮、旅游、房产等,方便市民获取所需资讯。 8. **人才服务**:这类网站可能包含人才招聘、职业培训、求职信息等功能,...
本PPT模板旨在阐述这一主题,通过年度工作概述和成功项目的展示,揭示互联网+智慧城市在实际应用中的价值。 在【年度工作概述】部分,我们可以探讨以下几个核心知识点: 1. **智慧城市概念**:智慧城市是指通过...
随着我国经济社会的快速发展,城市化进程不断加快,城市生活垃圾的产生量也在逐年增加。为了有效处理这些垃圾,保障城市环境的整洁卫生,实施城市生活垃圾分拣项目成为一项紧迫的任务。然而,垃圾处理不仅需要关注其...
城市智慧路灯综合管理平台是现代城市管理中的一个重要组成部分,它利用先进的信息技术、物联网技术和大数据分析,对城市中的路灯进行智能化管理,提高能源效率,降低维护成本,提升城市公共服务水平。这个后台模板是...
4. 分析数据,计算北京与其他城市的成本差异,或者分析北京不同区域的生活成本变化。 5. 可能会用到Matplotlib或Seaborn等库进行数据可视化,如绘制折线图、柱状图等,以便更好地理解数据。 6. 如果有Web应用部分,...
【绿色城市生活公司网页模板】是一种专为展示环保、城市生活和可持续发展理念的企业或组织设计的网站布局方案。此类模板通常包含一系列与环保主题相关的视觉元素、色彩搭配和设计风格,旨在传达出绿色、生态友好的...
【MCGS高级教程实例模板】是一系列基于MCGS(Monitor & Control for General System,通用监控系统)的高级教学示例,旨在帮助用户更好地理解和掌握MCGS在实际项目中的应用。MCGS是一种广泛应用于工业自动化领域的...
这些数据反映了90后年轻人在大城市生活所面临的经济压力。 在基本住房支出方面,报告指出四大城市(北京、上海、广州、深圳)的电费、水费、暖气费及垃圾处理等费用均超过200元,其中深圳的支出最高。同时,毕业生...
综合来看,《某城市生活垃圾综合分选处理系统设计》不仅为我们提供了一个设计模板,更重要的是,它体现了城市生活垃圾处理的理念更新和技术进步。它倡导的是将垃圾作为资源来对待,强调减量化、资源化和无害化处理的...
数字化城市管理通过集成信息技术,实现对城市设施、服务和问题的高效管理和快速响应,提高城市管理的智能化水平,降低运营成本,提升居民生活质量。 2. 项目建设目标 主要目标包括建立全面的城市信息数据库,实现...
"为城市减负垃圾分类主题PPT优质模板"旨在通过专业设计的PPT,帮助公众理解并实践垃圾分类,从而减轻城市环境压力。 首先,我们需要明确垃圾的分类。垃圾分类主要包括可回收物、厨余垃圾、有害垃圾和其他垃圾四大类...
17、多城市版本:支持多城市间自由切换,不同城市可采用独立二级域名,系统根据浏览者IP自动跳转所在城市,分站有独立的广告管理,每个分站可设置独立管理员,分站拥有独立的SEO优化设置可设置不同的关键词描述。...
总而言之,乾县城市生活垃圾处理场建设工程的监理实施细则,是确保工程质量和安全、控制工程进度和成本的关键。通过这样的监理工作,工程项目得以科学、高效、有序地推进,为乾县及周边地区提供了一个高效环保的生活...
5. 商业模式:作为创业书模板,文档会探讨如何将上述技术和策略转化为可行的商业模式,包括投资成本、运营模式、盈利预测以及市场潜力等方面。 6. 社会与环境影响:项目不仅需要经济上的成功,还应考虑其社会和环境...
在一线城市会有居住房价、物价等各方面成本高,生活压力大,在生活中孤单和寂寞感强烈,没有结婚、没有属于自己的房子,总会觉得自己在这个城市的是个外来人,520空巢青年现状数据报告卡通ppt模板。
这些出行方式相较于私家车,能够减少交通拥堵、降低能耗和尾气排放,既缓解了城市的空气污染问题,也符合低碳生活的原则。 合理膳食也是低碳生活的一部分。通过减少食物浪费、选择本地当季食材、减少肉类消费等举措...
随着城市化进程的不断...通过这份方案,我们可以看到城市道路绿化不仅仅是一项简单的工程,而是一个系统工程,它的成功实施需要多方面的知识、技术和管理的有机结合,最终达到提升城市环境质量和居民生活质量的目的。
【垃圾分类的原因】 垃圾分类是现代社会环保行动的重要组成部分,其原因主要有以下几点: ...通过采用合适的模板进行宣传活动,可以更好地传达垃圾分类的重要性,鼓励更多人参与到这项有益于地球的行动中来。
他们通常是在大城市中奋斗的年轻人,远离家乡和亲人,面临着高昂的生活成本和巨大的生活压力。他们在情感上可能感到孤独和寂寞,归属感较弱。这启示我们在设计PPT时,可以考虑如何通过数据和故事来反映这一社会现象...