wangxiaoq / design-pattern

设计模式总结

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

设计模式

策略模式

策略模式即实现了很多的策略,供客户使用,不同的策略之间可以相互替换而不会影响到客户。 举个例子:有很多的车,比如汽车、自行车、三轮车等,他们的行驶方式是不一样的,汽车用四个 轮子跑(最常见的),自行车用两个轮子跑,三轮车用三个轮子跑,因此可以将这些车的行驶方式 实现为策略,供不同的车使用。这个例子的代码见车行驶方式

观察者模式

观察者模式定义了一对多的依赖关系,主题(被观察者)的状态在发生变化时,会对观察者进行通知。 观察者模式在JAVA中最常见的应用就是GUI的事件监听。举个日常生活中常见的例子:目前房价炙手可热, 尤其是二手房,在买二手房时,购房者一般会通过中介进行交易;那么当中介目前没有合适的房源时, 中介就会告知购房者留下电话,等有房源了会及时进行通知。这就是一个典型的观察者模式,在这个例子中, 中介就是主题(Subject),购房者是观察者(Observer),状态就是中介有无房源。这个例子的代码见 买二手房

装饰者模式

装饰者模式可以动态的将责任附加到对象上,装饰者模式提供了比继承更有弹性的软件复用技术。在JAVA中 装饰者模式的一个例子就是IO库。举个日常生活中常见的例子,在外面买煎饼果子时,可以加鸡蛋和(或)香肠, 并会在原有的价格上加上鸡蛋和香肠的价格,在这个例子中可以使用装饰者模式,对最终的价格进行计算,其中 鸡蛋和香肠属于装饰者。这个例子的代码见煎饼果子

简单工厂模式

简单工厂模式指由工厂对象决定创建哪一个类的对象,因其在类中一般是静态的方法实现的,因此又叫静态工厂模式。 简单工厂模式更多的被认为是一种编程习惯,而不被认为是一种设计模式。简单工厂模式包括三个元素:工厂,抽象产品和具体产品。 举个例子,联想的美帝良心是大家公认的,我们以联想生产笔记本电脑为例来进行说明。工厂可以生产电脑,抽象产品就是电脑, 具体产品即生产出来的不同型号的电脑,例如t450,t460,t460p等。例子代码见生产电脑

工厂方法模式

工厂方法模式定义了一个创建对象的接口,但是具体创建哪一个对象由子类来决定,即将创建实例化类的工作推迟到了子类执行。 工厂方法模式的四要素:抽象工厂,具体工厂,抽象产品和具体产品。仍以联想生产电脑为例,对于同一型号的电脑,美国的配置 要比国内的配置高,国内销售的电脑和美国销售的电脑应该不是在同一个工厂生产出来的。所以抽象工厂就是电脑生产工厂,具体工厂 就是生产国内产品的工厂和生产美国产品的工厂,抽象产品就是电脑,具体产品就是在美国销售的的电脑和在国内销售的电脑。例子代码 见电脑差别

About

设计模式总结


Languages

Language:C++ 100.0%