摘要: 工厂实现了解耦。 简单工厂把全部的事情在一个地方都处理完了,然而工厂方法却是创建一个框架。让子类决定要如何实现。简单工厂不具备工厂方法的弹性,因为简单工厂不能变更正在创建的产品。 工厂的好处 将穿件对象的方法集中在一个对象或方法中,可以避免代码中的重复,并且更方便以后的维护。这也意味着客户在实例化对象时,只会依赖于接口,而不是具体类。 工厂的实现也创建了具体的对象。如果不创建... 阅读全文
posted @ 2016-02-05 11:34 loststart 阅读(145) 评论(0) 推荐(0)
摘要: 依赖倒置原则 要依赖抽象,不要依赖具体类 以下要点可帮助避免违反依赖倒置原则: 变量不可以持有具体类的引用(不要用new创建对象,用工厂创建) 不要让类派生自具体类(派生自接口或抽象类) 不要覆盖基类中已实现的方法 阅读全文
posted @ 2016-02-05 11:34 loststart 阅读(129) 评论(0) 推荐(0)
摘要: 装饰者模式 动态的将责任附加到对象上。想要扩展功能,装饰者提供有别于继承的另一种选择。 装饰者和被装饰者具有相同的超类 可以用一个或多个装饰者包装同一个对象 装饰者和被装饰对象有相同的超类型,所以在任何需要原始对象(被包装的)的场合, 可以用装饰过的对象代替它 装饰者可以在所委托被装饰者的行为之前与 / 或之后,加上自己的行为,以达到特定的目... 阅读全文
posted @ 2016-02-05 11:13 loststart 阅读(122) 评论(0) 推荐(0)
摘要: 观察者模式 定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。 观察者模式需要实现两个接口。observable(可观察者)和observer(观察者)。 observable定义了三个方法:register、remove、notify observe 阅读全文
posted @ 2016-02-04 09:58 loststart 阅读(221) 评论(0) 推荐(0)
摘要: 策略模式:定义了算法族,分别封装起来,让它们之间可以相互替换。此模式让算法的变化独立于使用算法的客户。 总体思路:将可能变算法封装成统一的接口。类只包含接口而不包含实现。算法的实现由实现接口的类来完成。通过调用不同的方法类来调用不同的算法。 Duck类中包含fly和quack的接口而不包含实现。Du 阅读全文
posted @ 2016-02-04 08:43 loststart 阅读(195) 评论(0) 推荐(0)