欢迎来到天天文库
浏览记录
ID:39550539
大小:582.00 KB
页数:11页
时间:2019-07-06
《HeadFirst设计模式》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第一章策略模式模式:是在某些情境下,针对某些问题的某种解决方案。OO基础:抽象;封装;多态;继承作业:设计抽象类Shape,派生类Rectangle,Triangle;建立对象时可以指定形状的长和宽(构造方法),可以显示形状,显示面积。类图:程序设计:publicclassTest{publicstaticvoidmain(String[]args){shapeshape1,shape2;shape1=newRectangle(10,20);//实例化shape1.Display();//调用方法shape1.showAr
2、ea();}}定义:定义了算法族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。设计原则:原则1:找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。原则2(封装可变性):逻辑相关,物理封装。原则2(多态性(动态改变)):针对接口编程,而不是针对实现编程。原则3:多用组合,少用继承。继承的缺点:(继承class——extends)破坏封装;父类实现改变,子类受牵连;继承静态,不能动态改变。组合优点:(接口interface——implements)不破坏封装;动态
3、;依靠接口。组合缺点:增加数量。作业:图书销售问题:有的书不打折有的书实行每本一元的折扣有的书提供打折促销,如9折,8折等11有的书提供买够多少返多少促销,如买100返40等设计程序,根据数量单价计算图书金额。画出类图。类图:程序设计:publicstaticvoidmain(String[]args){bookskl=newbook(newcount(100.0,1));//不打折的skl.display();booksk2=newbook(newdiscount1(100.0,1,1));//每本书退一元的sk2.di
4、splay();booksk3=newbook(newdiscountn(100.0,8,1));//打八折的sk3.display();booksk4=newbook(newreturnn(100.0,100,40,1));//满一百送四十sk4.display();}第一章观察者模式定义:定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。设计原则:原则1:为了交互对象之间的松耦合设计而努力。原则2:找出程序中会变化的方面,然后将其和固定不变的方面相分离。作业:设有一股票,
5、其价格在一定范围内波动,股民需要三种报告:股票的当前价格;股票价格的统计分析报告(最低价、最高价、均价);股票价格趋势预测。请运用观察者模式,编写上述股票行情程序(模拟估价10次变动)。要求画出相应的类图,提供java源程序。类图:11程序设计:publicstaticvoidmain(String[]args){StockDatastockData=newStockData();CurrentStockcurrentPrice=newCurrentStock(stockData);Analysisanalysis=new
6、Analysis(stockData);Forecastforecast=newForecast(stockData);stockData.getPrice(30.00);stockData.getPrice(29.00);stockData.getPrice(20.00);}第三章装饰者模式定义:动态地将责任附加到对象上。想要扩展功能,装饰者提供了比继承更有弹性的替代方案。设计原则:类应该对扩展开放,对修改关闭。作业:汽车店销售宝来(10万),速腾(13万),迈腾(18万),每种车可选装真皮座椅(2000元),天窗(30
7、00元)疝气大灯(4000),编写程序计算加装选配件的车价。类图:程序设计:publicstaticvoidmain(String[]args){11SellCarsellCar3=newMaiTeng();sellCar3=newChair(sellCar3);sellCar3=newLight(sellCar3);sellCar3=newWindow(sellCar3);System.out.println(sellCar3.getDescription()+"$"+sellCar3.cost());//迈腾车带真皮坐
8、椅和疝气大灯及天窗}第四章工厂模式简单工厂定义:工厂方法模式:定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。抽象工厂模式:提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。设计原则:依赖抽象,不要依赖具体类。或:依赖倒置原则抽象不应当依赖于
此文档下载收益归作者所有