设计模式描述了对象之间在互不关心彼此数据模型的情况下怎样进行通信。是
软件复用的一个重要方法。
设计模式有很多种,总的来分有——
(1)构造模式(
Creational patterns):用来在不同的情况下创建不同的对象,而不用程序员直接实例化类;
(2)结构模式(
Structural patterns):用来将一大堆对象组合到一个更大的结构中,比如复杂的用户界面;
(3)行为模式(Behavioral patterns):定义系统中对象之间的通信方式,以及在一个复杂系统中怎样控制流程。
Design Patterns suggests that you always
1. Program to an interface and not to an implementation. 定义父类为抽象类。
1. Program to an interface and not to an implementation. 定义父类为抽象类。
2. Favor
object composition over inheritance. 在一个对象里封装多个其它对象,我的理解是一个对象实现多个接口。(Your new object can have the interface that is best for what you want to accomplish without having all the methods of the parent classes.)
------------------------------------------------------------------------------------------------
看了
工厂模式之后,意识到其实设计模式是
复用的一种实现。
拿工厂模式来说,该模式就是根据不同的情况用一个工厂类来生成若干相关类中的一个对象。在工厂类里判断条件,然后实例化合适的对象,并返回给程序员该实例。
如果不用工厂模式,必须在程序中来判断具体的条件,而且每次需要用到实例时程序员都不得不做一次判断。怎么解决这些重复的代码编写量?——
复用!对,就是将这些重复的判断放到一个类里,用到实例的时候,只需调用这个类的生成实例的方法,我们就不用考虑什么时候用类A,什么时候用类B。即使是有新的相关类加入到系统中,我们也可以只在工厂类里修改一下即可,实现了
代码级的复用。