设计模式
钟文佳
我有我的滋味
展开
-
设计模式:抽象工厂模式(Python)
抽象工厂模式(Abstract Factory Pattern):提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。原则:依赖抽象,不要依赖具体类。案例:还是“工厂方法模式”中的例子,但是换一种方式来解决:因为口味的不同是原材料的不同造成的,因此我们就创建原材料工厂,每个工厂生产的原材料都不相同,同一款Pizza从不同的原材料工厂拿货,做出的P原创 2012-05-27 19:51:48 · 3008 阅读 · 1 评论 -
设计模式:工厂方法模式(Python)
工厂方法模式(Factory Method Pattern):定义了一个创建对象的接口,但由子类决定要实例化类的哪一个;即通过子类来创建对象。原则:要依赖抽象,不要依赖具体类。案例:先解释什么是工厂:如果你开一家Pizza店(PizzaStore抽象类)卖各种风味的Pizza(Pizza子类),那么你需要根据客户要求准备相应的Pizza(创建Pizza对象),然后烘烤、原创 2012-05-26 15:29:47 · 13748 阅读 · 2 评论 -
设计模式:策略模式(Python)
策略模式(Strategy Pattern):策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。原则:针对接口(即超类型)编程,而不是针对实现编程;把会变化的部分取出并“封装”起来,好让其它部分不会受到影响;多用组合,少用继承;案例:现在需要实现几种鸭子,每种鸭子都有不同的特征(display)原创 2012-05-17 23:53:51 · 6058 阅读 · 3 评论 -
设计模式:观察者模式(Python)
观察者模式(Observer):定义了对象间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。类似报纸订阅,当订阅报纸后,一有更新就会自动收到,除非退订;这里我们将出版者称为“主题”(Subject),订阅者成为“观察者”(Observer)。原则:为交互对象之间的松耦合而努力案例:现在要实现一个气象站,观测三个数据:温度,湿度和气压;原创 2012-05-22 07:42:48 · 2529 阅读 · 1 评论 -
设计模式:装饰者模式(Python)
装饰者(或修饰)模式(Decorator):增加一个修饰类包裹原来的类,装饰过的对象可替代原始对象。原则:类应该对扩展开放,对修改关闭。案例:奶茶店有多种饮料:奶茶、果汁、咖啡;每种饮料可搭配若干配料:珍珠、布丁、牛奶;要能根据顾客的任意搭配下单并计算价钱;代码:#!/usr/bin/pythonclass Beverage: descr原创 2012-05-23 22:57:29 · 3339 阅读 · 1 评论