- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一、 编程论述题:框架设计者
以 SortTest 和 IntSort 为例,说明什么是控制反转 IoC
SortorTest-BubbleSort。客户依赖具体的服务 BubbleSort 。
SortorTest-IntSort=BubbleSort 。应用程序 SortorTest 遵循针对接口编程 / 抽象依赖原 则,依赖抽象类型 IntSort ,而 BubbleSort 自然地依赖父类型。
【 SortorTest-IntSort 】。这一步是关键。如果需要将控制模块 SortorTest 设计成框架,
可以将控制模块 SortorTest 和它必须依赖的抽象类型 IntSort 打包。控制模块 SortorTest 从应 用程序 (上层模块 ) 变为框架 (下层模块 ),为控制反转 (Inversion ofControl) 。最好能够提供 JavaDoc,并且将方法名 sort 改成 soooooort 。
Main -【 SortorTest-IntSort 】 =BubbleSort 。(其他程序员)使用框架。
带 main 的 BubbleSort ,BubbleSort -【 SortorTest -IntSort】 =BubbleSort。与第一步 “依赖倒置” 。
反映了某些应用程序员的失落心情:从自由自在变为受控于人
什么是抽象依赖原则,它与应用程序、框架的关系
是程序要依赖于抽象接口,不要依赖于具体实现。简单的说就是要求对抽象进行编程, 不要对实现进行编程,这样就降低了客户与实现模块间的耦合。
在应用程序设计和框架设计中,抽象依赖原则 /ADP 均有重要作用。在应用程序的编程 中,可以把 ADP 视为一种规劝或忠告;而在框架设计中,依赖抽象类型则是条例和军规。
有一个接口如下
package util;
@FunctionalInterface public interface DoubleOP {
double op(double m,double n) ;
}
编写应用程序 App,以 DoubleOP 的实现类、匿名类和λ表达式提供回调函数,分别完成 m-n、 m*n*n 和求 m 与 n 大值功能。
package abc;
import tool.God;
import util.DoubleOP;
import util.Main;
public class App{
public static void main(String[] args){
DoubleOP f = (DoubleOP)God.create(2065);
double d = Main.runFramework(f,1.2,3.4);
System.out.println(d);
}
public static void test(){
double d = Main.runFramework(new HelloWorld(),1,3);
System.out.println(d);
DoubleOP f = (double m,double n) -{return m * n *n;};
d = Main.runFramework(f,1,3);
System.out.println(d);
f = (m,n) -{return m +2*n ;};
d = Main.runFramework(f,1,3);
System.out.println(d);
d = Main.runFramework((m,n) -{return m -n ;},1,3);
System.out.println(d);
}
}
二、 论述题: Parnas 原则
什么是 Parnas 原则,它在软件设计中的地位
Parnas 原则被称为接口与实现的分离。
Parnas原则是软件工程中最重要的原则, 之所以将它作为面向对象的三大原则, 是因为 “该 原则在对象技术中的一系列的推广和应用, Parnas 原则是功能抽象的核心,也是数据抽象、
封装的底层依据”。
3. 什么是针对接口编程,什么是类的接口, Java 中如何限定类的接口
类的接口指外界对象能够访问的、类所定义的接口的集合。通常,类中声明的 public 、 protected 域,也作为类接口的一部分。
在一个面向对象的系统中, 系统的各种功能是由许许多多的不同对象协作完成的。 在这 种情况下,各个对象内部是如何实现自己的 ,对系统设计人员来讲就不那么重要了;而各个
对象之间的协作关系则成为系统设计的关键。 小到不同类之间的通信, 大到各模块之间的交 互,在系统设计之初都是要着重考虑的, 这也是系统设计的主要工作内容。 面向接口编程就 是指按照这种思想来编程。
接口不提
文档评论(0)