当前位置: 首页 > news >正文

做外贸的零售网站优化网站平台

做外贸的零售网站,优化网站平台,网站备案最快多久,怎么做物流网站Python与设计模式–抽象工厂模式 一、快餐点餐系统 想必大家一定见过类似于麦当劳自助点餐台一类的点餐系统吧。在一个大的触摸显示屏上#xff0c;有三类可以选择的上餐品#xff1a;汉堡等主餐、小食、饮料。当我们选择好自己需要的食物#xff0c;支付完成后#xff0…Python与设计模式–抽象工厂模式 一、快餐点餐系统 想必大家一定见过类似于麦当劳自助点餐台一类的点餐系统吧。在一个大的触摸显示屏上有三类可以选择的上餐品汉堡等主餐、小食、饮料。当我们选择好自己需要的食物支付完成后订单就生成了。下面我们用今天的主角-- 工厂模式--来生成这些食物的逻辑主体。 首先来看主餐的生成仅以两种汉堡为例。 class Burger():nameprice0.0def getPrice(self):return self.pricedef setPrice(self,price):self.pricepricedef getName(self):return self.name class cheeseBurger(Burger):def __init__(self):self.namecheese burgerself.price10.0 class spicyChickenBurger(Burger):def __init__(self):self.namespicy chicken burgerself.price15.0其次是小食。内容基本一致 class Snack():name price 0.0type SNACKdef getPrice(self):return self.pricedef setPrice(self, price):self.price pricedef getName(self):return self.nameclass chips(Snack):def __init__(self):self.name chipsself.price 6.0class chickenWings(Snack):def __init__(self):self.name chicken wingsself.price 12.0class Beverage():name price 0.0type BEVERAGEdef getPrice(self):return self.pricedef setPrice(self, price):self.price pricedef getName(self):return self.nameclass coke(Beverage):def __init__(self):self.name cokeself.price 4.0class milk(Beverage):def __init__(self):self.name milkself.price 5.0以上的BurgerSnackBeverage都可以认为是该快餐店的产品由于只提供了抽象方法 我们把它们叫抽象产品类而cheese burger等6个由抽象产品类衍生出的子类叫作具体产品类。 接下来“工厂”就要出现了。 class foodFactory():typedef createFood(self,foodClass):print self.type, factory produce a instance.foodInsfoodClass()return foodIns class burgerFactory(foodFactory):def __init__(self):self.typeBURGER class snackFactory(foodFactory):def __init__(self):self.typeSNACK class beverageFactory(foodFactory):def __init__(self):self.typeBEVERAGE同样foodFactory为抽象的工厂类而burgerFactorysnackFactorybeverageFactory为具体的工厂类。 在业务场景中工厂模式是如何“生产”产品的呢 if __name____main__:burger_factoryburgerFactory()snack_factorrysnackFactory()beverage_factorybeverageFactory()cheese_burgerburger_factory.createFood(cheeseBurger)print cheese_burger.getName(),cheese_burger.getPrice()chicken_wingssnack_factorry.createFood(chickenWings)print chicken_wings.getName(),chicken_wings.getPrice()coke_drinkbeverage_factory.createFood(coke)print coke_drink.getName(),coke_drink.getPrice()可见业务中先生成了工厂然后用工厂中的createFood方法和对应的参数直接生成产品实例。 打印结果如下 BURGER factory produce a instance. cheese burger 10.0 SNACK factory produce a instance. chicken wings 12.0 BEVERAGE factory produce a instance. coke 4.0 二、工厂模式、简单工厂模式、抽象工厂模式 工厂模式的定义如下定义一个用于创建对象的接口让子类决定实例化哪个类。工厂方法使一个类的实例化延迟到其子类。其通用类图如下。其产品类定义产品的公共属性和接口工厂类定义产品实例化的“方式”。 在上述例子中工厂在使用前必须实例化。如果把工厂加个类方法写成如下形式 class simpleFoodFactory():classmethoddef createFood(cls,foodClass):print Simple factory produce a instance.foodIns foodClass()return foodIns在场景中写成如下形式 spicy_chicken_burgersimpleFoodFactory.createFood(spicyChickenBurger) 这样省去了将工厂实例化的过程。这种模式就叫做简单工厂模式。 还是在上述例子中createFood方法中必须传入foodClass才可以指定生成的food实例种类如果将每一个细致的产 品都建立对应的工厂如cheeseBurger建立对应一个cheeseBurgerFactory这样生成食物时foodClass也不必指 定。事实上此时burgerFactory就是具体食物工厂的一层抽象。这种模式就是抽象工厂模式。三、工厂模式的优点和应用 工厂模式、抽象工厂模式的优点 1、工厂模式巨有非常好的封装性代码结构清晰在抽象工厂模式中其结构还可以随着需要进行更深或者更浅的抽象层级调整非常灵活 2、屏蔽产品类使产品的被使用业务场景和产品的功能细节可以分而开发进行是比较典型的解耦框架。工厂模式、抽象工厂模式的使用场景 1、当系统实例要求比较灵活和可扩展时可以考虑工厂模式或者抽象工厂模式实现。比如 在通信系统中高层通信协议会很多样化同时上层协议依赖于下层协议那么就可以对应建立对应层级的抽象工厂根据不同的“产品需求”去生产定制的实例。四、工厂类模式的不足 1、工厂模式相对于直接生成实例过程要复杂一些所以在小项目中可以不使用工厂模式 2、抽象工厂模式中产品类的扩展比较麻烦。毕竟每一个工厂对应每一类产品产品扩展就意味着相应的抽象工厂也要扩展
http://www.zqtcl.cn/news/489131/

相关文章:

  • 杭州建设公司网站石家庄做网站比较好的公司
  • 英文网站支付怎么做产品做推广都有那些网站
  • 自己做的网站怎么加入微信支付综合性门户网站列举
  • 哪个网站 可以做快递单录入网站怎么做抽奖
  • 网站设计培训班网站域名费用怎么做分录
  • 济南做网站哪里好惠州附近公司做网站建设多少钱
  • 使用oss做静态网站网站广告牌制作教程
  • 外贸看的英文网站公众号模板编辑器
  • 做网站的数据库的步骤阅读网站模板下载
  • 建设网站要钱吗个人养老金制度是什么意思
  • 做h5的网站页面设计软文素材网站
  • 黄冈网站推广软件费用是多少手机网站弹出层插件有哪些
  • wordpress文章链接怎么改怎么优化关键词排名优化
  • 专业做包包的网站好产品网站做营销推广
  • 网站刚建好怎么做能让百度收录湖北黄石网站建设
  • 网站建设拾金手指下拉二一wordpress 插件破解
  • 天津做网站外包公司有哪些美橙互联网站
  • 石家庄网站建设蓝点办公室装修工程
  • 申请网站空间就是申请域名建设机械网站咨询
  • 做美食网站有哪些网站怎么做自响应
  • 衡水网站建设维护宝安官网网站建设比较好的
  • 网站建设的审批重庆建设工程信息网30系统
  • 泉州软件开发培训机构怎么做网站内部链接的优化
  • 网站定位是什么中国it外包公司排名
  • 洛阳微信平台网站建设网站成功案例分析
  • 网站建设在淘宝怎么分类深圳软件开发招聘信息
  • .net如何做网站个人网站的制作
  • 网站优化排名推广站长统计官方网站
  • 长沙wap网站建设wordpress 用户 函数
  • 淮安做网站的公司有哪些公司目前上海有几个区