![Python编程300例:快速构建可执行高质量代码](https://wfqqreader-1252317822.image.myqcloud.com/cover/209/36862209/b_36862209.jpg)
上QQ阅读APP看书,第一时间看更新
例36 形状工厂
1.问题描述
实现一个形状工厂ShapeFactory创建不同形状,假设只有三角形、正方形和矩形3种形状。
2.问题示例
输入:
ShapeFactory sf=new ShapeFactory();
Shape shape=sf.getShape("Square");
shape.draw();
输出:
![](https://epubservercos.yuewen.com/E3EF07/19549640501519606/epubprivate/OEBPS/Images/Figure-P50_24443.jpg?sign=1738977265-DnyAxSejs182l52KiIUdDGEcPuvBxa4A-0-7abfd6eee64c4ac0564a70c62ea1b534)
输入:
ShapeFactory sf=new ShapeFactory();
shape=sf.getShape("Triangle");
shape.draw();
输出:
![](https://epubservercos.yuewen.com/E3EF07/19549640501519606/epubprivate/OEBPS/Images/Figure-P50_24466.jpg?sign=1738977265-SaWo8j7Wi5fby4b7u5Y0rxAZfa0FeKhh-0-6b6479f5cf605d0234a819c2e9bbbce2)
输入:
ShapeFactory sf=new ShapeFactory();
shape=sf.getShape("Rectangle");
shape.draw();
输出:
![](https://epubservercos.yuewen.com/E3EF07/19549640501519606/epubprivate/OEBPS/Images/Figure-P50_24455.jpg?sign=1738977265-qzGcsGKKnrxC6F4fngPFNRBaDP7EQKmh-0-a04afc49885049ea54d841104be1b9f7)
3.代码实现
![](https://epubservercos.yuewen.com/E3EF07/19549640501519606/epubprivate/OEBPS/Images/Figure-P50_24474.jpg?sign=1738977265-FssCz5lUE1QC85IjBkr4WfDba6XVnOaY-0-775d06b7c61e35bc93debe26b17ce6ee)
4.运行结果
输入:type=Triangle
输出:
![](https://epubservercos.yuewen.com/E3EF07/19549640501519606/epubprivate/OEBPS/Images/Figure-P51_24497.jpg?sign=1738977265-WtywRwClHsHTVRzVqKmEJCrMUCQyUkcw-0-bc6666a1a7c660a30c94d6313c4ec3fc)
输入:type=Rectangle
输出:
![](https://epubservercos.yuewen.com/E3EF07/19549640501519606/epubprivate/OEBPS/Images/Figure-P51_24498.jpg?sign=1738977265-1XpW31qqq2tZcsZLpiI1a9iN0qFmfd07-0-90056c7704aa20bfb43e7c114e7d7cfc)
输入:type=Square
输出:
![](https://epubservercos.yuewen.com/E3EF07/19549640501519606/epubprivate/OEBPS/Images/Figure-P51_24499.jpg?sign=1738977265-OhBlUb5kIVGOFwOKG9q5imQ8ZzSddwx3-0-9eb8c9c02687b9470f8218c45c9efc07)