- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Spring入门与IOC
* * * * * * * * * * 好莱坞原则(Hollywood Principle:不要调用我,让我来调用你)。 耦合的坏处:如果改变程序的一个模块要求另一个模块同时发生变化,就认为这两个模块发生了耦合。 目的:组件的构建和使用分开。 DI = Dependency Injection。 * * * * * * * * * * 用OOP思想构建一个打印 如何开发一个打印机? 打印机功能的实现依赖于 墨盒 和 纸张。 步骤: 1、定义墨盒和纸张的接口标准。 2、使用接口标准开发打印机。 3、组装打印机。 4、运行打印机。 A4 B5 彩色墨盒 双色墨盒 开发相应的组件 定义组件接口 墨盒接口:Ink 纸张接口:Page 使用接口开发打印机 public interface Ink { public String getColor(); } public interface Paper { public static final String newline = \r\n; /** * 输出字符到纸张 */ public void putInChar(char c); /** * 得到输出到纸张上的内容 */ public String getContent(); } public class Printer { public Ink ink = null; public Paper paper = null; public void print(String str){ System.out.println(使用+ ink.getColor().+颜色打印); for(int i=0;istr.length();++i){// 逐字符输出到纸张 paper.putInChar(str.charAt(i)); } System.out.print(paper.getContent()); // 将纸张的内容输出 } } 我们在开发打印机时,使用了Ink和Paper接口。但并不关心其实现。 ink和paper何时被实例化呢? 开发相应的组件 1、为了方便组装,我们给Printer类的ink和paper属性增加setter方法 2、创建或得到Ink和Paper的实现类 public class Printer { public Ink ink = null; public Paper paper = null; ... ... public void setInk(Ink ink) { this.ink = ink; } public void setPaper(Paper paper) { this.paper = paper; } } 实际组装打印机过程 A4 B5 双色墨盒 彩色墨盒 程序中如何组装打印机 public static void main(String[] args) { //定义墨盒 Ink ink1=new ColorInk(); //定义纸张 TextPaper paper=new TextPaper(); paper.setCharPerLine(10); paper.setLinePerPage(5); //定义打印机 Printer printer=new Printer(); //组装打印机 printer.setInk(ink1); printer.setPaper(paper); //进行打印 String str = “……; printer.print(str); } 构造墨盒 构造纸张 构造打印机 组装打印机 打印文章 演示示例 现实中如何生产打印机 建立打印机工厂 A型 B型 C型 工厂生产打印机过程特点 客户不并想知道打印机是如何制造的,它只关心怎么样使用打印机。 生产出的打印机是Printer类。 Printer类的print方法。 打印机的生产的过程是复杂的,由专业化的工厂生产,可以避免出现不合格的产品 程序中工厂生产打印机 /** * 获得彩色打印机 * @return */ public static Printer createColorPrinter(){ Ink ink1=new ColorInk(); TextPaper paper=new TextPaper(); paper.setCharPerLine(10); paper.setLinePerPage(5); Printer printer=new Printer(); printer.setInk(ink1); printer.setPaper(paper); ret
文档评论(0)