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

网站建设简介淄博做网站要招什么样的程序员

网站建设简介淄博,做网站要招什么样的程序员,网站流量指标有哪些,做网站是什么意思4-Python与设计模式–抽象工厂模式 一、快餐点餐系统 想必大家一定见过类似于麦当劳自助点餐台一类的点餐系统吧。在一个大的触摸显示屏上#xff0c; 有三类可以选择的上餐品#xff1a; 汉堡等主餐、小食、饮料。当我们选择好自己需要的食物#xff0c;支付完成后#…4-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.yutouwan.com/news/78195/

相关文章:

  • 坪山网站建设平台短视频运营方案书范文
  • 网站线上运营一个网站怎么做2个服务器
  • 电商网站有哪些电商网站订烟平台
  • 三合一网站系统东莞企业网络推广运营技巧
  • 设计师网站卡密登录内蒙网站建设
  • 网站排名推广怎么做网页建设类有哪些软件
  • 淮南营销型网站建设怎么样如何注册公司网站免费注册
  • aspx网站开发 案例建设工程施工合同范文
  • 湛江做网站哪家好设计公司调研报告
  • 网站导航结构的优化九一人才网赣州
  • 国内知名企业网站线上销售技巧
  • 网站开发设计课程教案html个人网页完整代码展示
  • 溧阳网站开发wordpress手机版如何设置
  • 设计网站费用多少wordpress 页面挂件
  • 广州和信建设公司网站网站建设工资高吗
  • 企业电子商务网站公司做网站域名归谁
  • wordpress指定目录为首页台州百度关键词优化
  • 吉林省城乡住房建设厅网站温州网站制作价格
  • iis网站连接数据库失败怎么自己做网页初学者
  • 做网站用地图渭南房产网站制作
  • 重庆免费注册推广网站连云港建设局电力网站
  • 合肥建站比较便宜的公司简单广告设计软件
  • 北京网站设计公司兴田德润放心wordpress 翻译失效
  • 金华规划局网站开发区钙网logo设计免费
  • 建网站需要营业执照吗如何制作局域网站
  • 网上哪个网站做的系统好用吗山东网站建设和游戏开发的公司
  • 网站模板 jsp十佳网站
  • 文化网站建设需要的功能做网站赚钱平台
  • 网站做跳转影响排名吗360建筑网如何修改名字
  • 百度新闻源网站有哪些淘宝网站建设的主要工作