![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=1739655532-D4pleVz9EGevWZsGHQJuw8bqupU2nzJL-0-cb46dad28fd2f1f2e86becb2a00a5b3b)
输入:
ShapeFactory sf=new ShapeFactory();
shape=sf.getShape("Triangle");
shape.draw();
输出:
![](https://epubservercos.yuewen.com/E3EF07/19549640501519606/epubprivate/OEBPS/Images/Figure-P50_24466.jpg?sign=1739655532-Y9Saw1p6gePBRlMp5zf9vqhPB3cE4bqC-0-30750ff5e2d5872f52df3b197e2a61c7)
输入:
ShapeFactory sf=new ShapeFactory();
shape=sf.getShape("Rectangle");
shape.draw();
输出:
![](https://epubservercos.yuewen.com/E3EF07/19549640501519606/epubprivate/OEBPS/Images/Figure-P50_24455.jpg?sign=1739655532-9xf3rkiTsCLOhTn3NgYtIpvWleHEST0E-0-4aac7e99dc4a8839cfc2663ceaeba029)
3.代码实现
![](https://epubservercos.yuewen.com/E3EF07/19549640501519606/epubprivate/OEBPS/Images/Figure-P50_24474.jpg?sign=1739655532-Oa22kUun9DPleysPKoRgkOT3EsaSwrB6-0-c2db9db1eac2c902f129547b8a490468)
4.运行结果
输入:type=Triangle
输出:
![](https://epubservercos.yuewen.com/E3EF07/19549640501519606/epubprivate/OEBPS/Images/Figure-P51_24497.jpg?sign=1739655532-YEUxR5G1YD5j7COwSqGWWiMTnVOq0UrG-0-16631908e49b1028ba9bbca5f56cffaa)
输入:type=Rectangle
输出:
![](https://epubservercos.yuewen.com/E3EF07/19549640501519606/epubprivate/OEBPS/Images/Figure-P51_24498.jpg?sign=1739655532-6ySBVic3kcxBq63QXlo7PX7DCsIoKauD-0-79910bff9c5a013797cda0fb1b8bca11)
输入:type=Square
输出:
![](https://epubservercos.yuewen.com/E3EF07/19549640501519606/epubprivate/OEBPS/Images/Figure-P51_24499.jpg?sign=1739655532-7E3stwWkSlrXFleHg21uPIXIh1HB9Uuz-0-b6a7074988f5be6a6961f09f3c7a0264)