面向对象程序设计方法
一、题目分析
1.简单工厂模式
使用简单工厂模式模拟女娲造人,如果传入参数M,则返回一个Man对象,如果传入参数W,则返回一个Woman对象。增加一个新的Robot类,如果传入参数R,则返回一个Robot对象,对代码进行修改并注意女娲的变化。
2.工厂方法模式
海尔工厂生产海尔空调,美的工厂生产美的空调。使用工厂方法模式描述该场景,绘制类图并编程实现。
3.抽象工程模式
电脑配件生产工厂生产内存、cpu等硬件,这些内存、CPU的品牌、型号并不一定相同,根据下面的“产品等级结构——产品族”示意图,使用抽象工厂模式实现电脑配件生产过程绘制相应的类图,并编程实现。
二、类图设计
1.简单工厂模式
2.工厂方法模式
3.抽象工程模式
三、程序实现
1.简单工厂模式:6个类,分别为MakePerson类,Man类,Woman类,Robot类,NvWa类和NVwaMakePerson类
2.工厂方法模式:7个类,分别是Factory类,FactoryPattern类,HaireFactory类,MideaFactory类,Product类,HaireProduct类和MideaProduct类
3.抽象工厂模式:3个接口,7个类,分别是CPU接口,RAM接口,PcCPU类,MacCPU类,PcRAM类,MacRAM类,ComputerPartsFactory接口,PcFactory类,MacFactory类和ComputerPartsClient类
四、调试、测试及运行结果
1 简单工厂模式
2工厂方法模式
3抽象工厂模式
五、经验归纳
简单工厂模式:工厂类是整个模式的关键所在,包含了必要的逻辑判断,能够外界给定的信息,决定究竟创建哪个具体类的对象。简单工厂模式适用于工厂类需要创建的对象比较少的情况,客户只需要传入具体的参数,就可以忽略工厂的生产细节,去获取想要的对象;
工厂方法模式:对简单工厂方法模式的一个抽象,抽离出了一个Factory类(或者接口),这个接口不负责具体产品的生产,而只是指定一些规范,具体的生产工作由其子类去完成。这个模式中,工厂类和产品类往往是一一对应的,完全解决了简单工厂模式中违背“开闭原则”的问题,实现了可扩展。工厂方法模式,主要是针对单一产品结构的情景;
抽象工厂模式:存在多个抽象产品类,每个抽象产品类可以派生出多个具体产品类,工厂提供多种方法,去生产“系列”产品。抽象工厂模式则是针对系列产品的一种工厂模式。