Java与设计模式

Java与设计模式

ID:41305609

大小:395.50 KB

页数:111页

时间:2019-08-21

Java与设计模式_第1页
Java与设计模式_第2页
Java与设计模式_第3页
Java与设计模式_第4页
Java与设计模式_第5页
资源描述:

《Java与设计模式》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、Java与设计模式面向接口编程、降低耦合性、增加灵活性2008年5月提纲创建模式1结构模式2行为模式32创建模式创建模式SingletonFactoryAbstractFactoryBuilderPrototype3创建模式–Factory(工厂模式)客户类和工厂类分开,消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改4创建模式–Factory(工厂模式)追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基

2、就是生产鸡翅的Factory。5创建模式–Factory(工厂模式)//抽象的创建对象基类publicabstractclassWindow{publicabstractvoidfunc();}//创建对象类publicclassWindowBigextendsWindow{publicvoidfunc(){System.out.println("ThisisBigWindow!");}}//创建对象类publicclassWindowSmallextendsWindow{publicvoidfunc(){System.out.println("ThisisSmallWindow!");}}6

3、创建模式–Factory(工厂模式)//工厂类publicclassFactory{publicWindowCreateWindow(Stringtype){if(type.equals("Big")){returnnewWindowBig();}elseif(type.equals("Small")){returnnewWindowSmall();}else{returnnewWindowBig();}}//TheMainfunctiononlyforourtestpublicstaticvoidmain(String[]args){FactorymyFactory=newFactory()

4、;WindowmyBigWindow=myFactory.CreateWindow("Big");myBigWindow.func();WindowmySmallWindow=myFactory.CreateWindow("Small");mySmallWindow.func();}}7创建模式–AbstractFactory(抽象工厂模式)核心工厂类不再负责所有产品的创建,而是将具体创建的工作交给子类去做,成为一个抽象工厂角色,仅负责给出具体工厂类必须实现的接口,而不接触哪一个产品类应当被实例化这种细节。8创建模式–AbstractFactory(抽象工厂模式)请MM去麦当劳吃汉堡,不同的M

5、M有不同的口味,要每个都记住是一件烦人的事情,我一般采用AbstractFactory模式,带着MM到服务员那儿,说“要一个汉堡”,具体要什么样的汉堡呢,让MM直接跟服务员说就行了。9创建模式–AbstractFactory(抽象工厂模式)定义两种墙:publicabstractclassWall{//privateWallwall;publicabstractStringgetName();}publicclassLivingRoomWallextendsWall{privateStringwallName;publicLivingRoomWall(){wallName="LivingRoo

6、mWall";}publicStringgetName(){returnwallName;}}publicclassBedRoomWallextendsWall{privateStringwallName;publicBedRoomWall(){wallName="BedRoomWall";}publicStringgetName(){returnwallName;}}10创建模式–AbstractFactory(抽象工厂模式)//定义两种门:publicabstractclassDoor{//privateDoordoor;publicabstractStringgetName();}pub

7、licclassLivingRoomDoorextendsDoor{privateStringdoorName;publicLivingRoomDoor(){doorName="LivingRoomDoor";}publicStringgetName(){returndoorName;}}publicclassBedRoomDoorextendsDoor{privateStringdoorName

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。