1,降低代码的灵活性。子类必须拥有父类的属性和方法,让子类自由的世界中多了些约束;
增强了耦合性。当父类的常量、变量和方法被修改时,需要考虑子类的改,而且在缺乏规范的环境下,这种修改可能带来非常糟糕的结果——大段的代码需要重构。
2,将自检方法的定义封装在一个接口中,其具体的实现由实现该接口的类完成,根据不同产品自检方法的不同实现不同的派生子类,在Header中定义一个该接口的引用,自检方法可以通过调用该引用的自检方法实现自检
3,定义一个抽象装饰类实现2中的接口,在抽象装饰类中维持一个对父类对象的引用,并在抽象装饰类中实现父类原有的自检方法,保证原有的方法不丢失,然后再根据要增加的自检行为创建抽象装饰类的子类,对其增加新的自检行为。
4,创建一个抽象策略类,声明EconomicHeat方法,然后再Heater类中维护一个对抽象策略类的引用实例,用于定义所采用的策略,然后创建各种具体策略类实现在抽象策略类中定义的EconomicHeat方法,在客户端使得用户可以选择不同的方法。
5,将新增的产品卖点声明为一个接口,在接口中定义抽象方法AddedFun,在实现该接口的类中,创建具体的如定时加热等方法,override方法AddedFun,然后再Heater类中维持一个对该接口的引用
6, `public abstract class Heater{
public AbstractCheckSelf checkSelf;
public AbstractEconomicHeat economicHeat;
public EaTimeHeat = timeheat;
public void setAbstractCheckSelf(AbstractCheckSelf abstractCheckSelf)
{
checkSelf = abstractedCheckSelf
}
public void setEconomicHeat(AbstractEconomicHeat heat)
{
economicHeat = heat;
}
public void setEaTimeHeat(EaTimeHeat timeHeat)
{
timeHeat = timeHeat;
}

}

public interface AbstractCheckSelf()
{
public void CheckSelf();
}

public class CheckProduct1 implements AbstractCheckSelf{
public void CheckSelf()
{
//产品1的自检方式
}
}
public class CheckProduct2 implements AbstractCheckSelf{
public void CheckSelf()
{
//产品1的自检方式
}
}

public class AbstractDecorator implements AbstractCheckSelf{
private AbstractCheckSelf checkSelf;
public AbstractDecorator(AbstractDecorator abstractDecorator){
this.checkSelf = abstractDecorator;
}
public void CheckSelf()
{
checkSelf.CheckSelf();
}
}

public class ConcreteDecorator1 extends AbstractDecorator{
public ConcreteDecorator1(AbstractCheckSelf abstractCheckSelf)
{
super(abstractCheckSelf);
}

public void method()
{//扩充的功能
}

}

public class ConcreteDecorator2 extends AbstractDecorator{
public ConcreteDecorator2(AbstractCheckSelf abstractCheckSelf)
{
super(abstractCheckSelf);
}

public void method()
{//扩充的功能
}

}

public abstract class AbstractEconomicHeat{
public void EconomicHeat()
{
}
}

public class EconomicHeat1 extends AbstractEconomicHeat{
@java.lang.Override
public void EconomicHeat() {
//加热方法1
}

public class EconomicHeat2 extends AbstractEconomicHeat{
@java.lang.Override
public void EconomicHeat() {
//加热方法2
}
}

public interface EaTimeHeat{
public void method(){
}
}

class TimeHeat1 implements EaTimeHeat{
@java.lang.Override
public void method() {
//新增产品卖点1
}
}

class TimeHeat2 implements EaTimeHeat{
@java.lang.Override
public void method() {
//新增产品卖点2
}
}

`

2011级《软件设计模式》考试试题(开卷)相关推荐

  1. 计算机辅助翻译入门试题,2011级计算机辅助翻译考试试题纸(A卷)

    集美大学试卷 2014-2015学年第1学期 课程名称 计算机辅助翻译 试卷 卷别 a.a 适用 学院,专业,学年 外语学院2011级英语专业 参加考试 方式 闭卷 开卷 总分 题名 1 2 3 4 ...

  2. 2011年计算机一级考试题,2011年计算机一级考试试题及答案

    计算机组装与维护考试试题及答案解析系列之三"2011年计算机一级考试试题及答案",后续资料敬请期待本本人文库!声明:本文档为网络下载版,如有错误之处,敬请谅解!谢谢您的支持! 注意 ...

  3. 计算机 未来哪种技术稀缺,2015级职业生涯规划考试试题

    2015级职业生涯规划考试试题 客观题(每小题:1分) 1,关于外职业生涯,下面表述哪项正确: A. 外职业生涯即职业生涯的外在表现 B. 外职业生涯即职业生涯的外部行动 C. 外职业生涯即从事职业时 ...

  4. 2009年5月软件设计师考试试题解析全国首发

    [书名]软件设计师考试考前冲刺预测卷及考点解析:最新版 [作者]郭春柱 [ISBN]978-7-121-08407-2 [出版社]电子工业出版社 [出版日期]2009年8月 [定  价]39.50元 ...

  5. 计算机软件水平考试题,计算机程序员软件水平考试试题

    计算机程序员软件水平考试试题 (17页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.9 积分 [网络综合 - 计算机软件水平考试试题]一.选题题 1 ...

  6. 2011年软件水平考试软件设计师辅导资料(1)

    2011年软件水平考试软件设计师辅导资料(1) 第一章 绪论 第一节 软件工程的产生 软件:计算机程序及其说明程序的各种文档."程序"是计算任务的处理对象和处理规则的描述. 软件的 ...

  7. 计算机办公软件知识考试试题,office办公软件考试题「附答案」

    一.选择题 1.根据汉字国标码GB2312-80的规定,将汉字分为常用汉字(一级)和次常用汉字(二级)两级汉字.一级常用汉字按______排列. A.部首顺序 B.笔划多少 C.使用频率多少 D.汉语 ...

  8. 山西计算机等级考试科目一模拟试题,2011山西省计算机等级考试试题 二级ACCESS一点通科目一...

    1.为防止计算机病毒的传播,在读取外来软盘上的数据文件或应用程序前应该( B ) A.打开软盘的写保护小孔 B.用消病毒软件检查该软盘有无计算机病毒 C.检查硬盘有无计算机病毒,并关掉软盘写保护小孔 ...

  9. 微型计算机中被处理信息称为,2011海南省计算机等级考试试题 二级C试题考资料...

    1.微型计算机的显示器显示西文字符时,一般情况下一屏最多可显示( A ) A.25行,每行80个字符 B.25行,每行60个字符 C.20行,每行80个字符 D.20行,每行60个字符 2.计算机中, ...

  10. 浙江省计算机等级考试的试题及答案,2011浙江省计算机等级考试试题 二级ACCESS试题及答案...

    1.在关系数据库中,用来表示实体之间联系的是(D) A. 树结构 B. 网结构 C. 线性表 D. 二维表 2.按条件f对关系R进行选择,其关系代数表达式为(C) A. R|X|R B. R|X|Rf ...

最新文章

  1. matlab 填充 多边形,algorithm – 如何在MATLAB中从无序边数据创建填充多边形?
  2. 5G将如何推动未来十年智能城市的发展
  3. Linux下安装rlwrap
  4. 一文了解Spring Cloud Stream体系
  5. Senparc.Weixin.MP SDK 微信公众平台开发教程(十八):Web代理功能
  6. 聊聊springboot2的embeded container的配置改动
  7. 【Paper】Network Dissection: Quantifying Interpretability of Deep Visual Representations跑源码遇到的问题
  8. linux标准I/O——流的相关操作
  9. 哈尔莫斯:怎样做数学研究
  10. 表单和ajax中的post请求后台获取数据方法(深度好文)
  11. 使用django-admin 上传-下载 文件
  12. python爬取邮件内容_Python实现获取邮箱内容并解析的方法示例
  13. Python函数知识点(详解)
  14. Java实现图片转pdf、pdf合并
  15. CMake中cmake_minimum_required的使用
  16. 窄带包络Matlab分析,窄带随机过程的产生及其性能测试
  17. oracle中begin end的作用,如何在SQL * Plus中使用begin/end运行Oracle查询?
  18. C语言入门——C语言概述
  19. 细说ItemInfo
  20. PHP多维数组按照键进行排序(对KEY按ASSIIC码排序)

热门文章

  1. QP深加工结转数据管理系统V2.0
  2. dtm文件生成等高线 lisp_采用人机对话方式从地形图上获取DTM数据的等高线—横断面法...
  3. 把极致的单品做到极致,让每一个商品都是爆品
  4. [附源码]Nodejs计算机毕业设计洗浴管理系统Express(程序+LW)
  5. drupal安装模块
  6. 外贸独立站的全方位运营指南:从定位到转化的完整解决方案
  7. 经验全部分享!90后一小哥0投入做自媒体,一个视频赚了500
  8. Python 通过adb传输文件到手机
  9. 智慧医院的信息集成平台建设与配电设计方案
  10. 计算机主板百科,计算机主板的模态分析