设计模式
小郭起床写博客
喜欢做游戏,数据可视化,服务器
展开
-
c++设计模式:迭代器模式(Iterator Pattern)
定义:迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。场景:我们有两个聚合A和B,有一个聚合管理的类,包含聚合A和B,而这个管理类的功能就是依次遍历它所包含的聚合中的元素并打印到控制台上。每个聚合中的元素存放的方式是不同的,有的用的是数组,有的可能是vector或者list等,因此我么为每个聚合定义了一个迭代器,管理类只需要依次获取各聚合的迭代器,使用迭代器转载 2013-04-06 19:07:05 · 1350 阅读 · 0 评论 -
c++设计模式:观察者模式(Observer Pattern)
定义:观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。场景:我们有一个气象站,我们通过WeatherData获取气象站的最新数据,并更新布告板上的数据。我们定义了两个布告板,一个是温度计,显示最新的温度,另一个布告板就是显示当前的所有温度、湿度和气压的最新数据。类图:c++代码如下:转载 2013-04-06 19:13:07 · 607 阅读 · 0 评论 -
c++设计模式:装饰者模式(Decorator Pattern)
定义:装饰者模式动态的将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。场景:我们购买咖啡的时候,可以要求在其中加入各种调料,例如:蒸奶、豆浆、摩卡或覆盖奶泡,而咖啡店也会根据所加入的调料收取不同的费用,所以当我们设计订单系统的时候就需要考虑到这些调料部分啦。顾客的需求不一,如果我们针对每种配方都声明一个类得话,系统的维护将会十分头疼。此时装饰者模式就转载 2013-04-06 19:12:32 · 572 阅读 · 0 评论 -
c++设计模式:简单工厂模式(Simple Factory Pattern)
定义:从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。场景:我们要开一家比萨商店,定义了一个简单的披萨工厂,可以根据客户的需转载 2013-04-06 19:11:45 · 622 阅读 · 0 评论 -
c++设计模式:抽象工厂模式(Abstract Factory Pattern)
定义:抽象工厂模式提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。场景:我们的披萨商店正在加速的扩建,已经接了好多城市的加盟邀请。可是各地口味不同,如果每个地市都定义不同的披萨类型,那么后期的维护将是十分头痛的,根据分析,我们披萨的种类是固定的,变动的其实就是披萨中添加的原料类型和原料的分量,因为不同的地方所生产的原料也是不同的。所以根据总部意见,打算在转载 2013-04-06 19:10:13 · 506 阅读 · 0 评论 -
c++设计模式:适配器模式(Adapter Pattern)
定义:适配器模式将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。场景:我们有一只鸭子和一只火鸡,鸭子会嘎嘎叫,而火鸡会咯咯叫,鸭子飞的要远一点,而火鸡只能飞行一小段距离。火鸡和鸭子都会叫,但是他们的叫声不同,接口也不同,飞行的接口相同但是飞行的行为不同。 对象适配器:使用对象的组合,以修改的接口包装被适配者。该种做法的优点是被适配者的任何转载 2013-04-06 19:09:19 · 724 阅读 · 0 评论 -
c++设计模式:单件模式(Singleton Pattern)
定义:单件模式确保一个类只有一个实例,并提供一个全局访问点实现一:#include using namespace std;class CSingleton{public: static CSingleton* getInstance(); static void cleanInstance(); int getValue(); voi转载 2013-04-06 17:45:18 · 549 阅读 · 0 评论 -
c++设计模式:模板方法模式(Template Method Pattern)
定义:模板方法模式在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。钩子的定义:钩子是一种被声明在抽象类中的方法,但只有空的或者默认的实现。钩子的存在,可以让子类有能力对算法的不同点进行挂钩。究竟需不需要挂钩,则由子类自行决定。场景:我们有一个咖啡厅,有一个专门的配方来调制咖啡喝茶,在调制的过程中的某些转载 2013-04-06 19:07:56 · 623 阅读 · 0 评论 -
c++设计模式:命令模式(Command Pattern)
定义:命令模式将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象,命令模式也支持可撤销的操作。命令模式可将“动作的请求者”从“动作的执行者”对象中解耦。场景:我们要设计一个遥控器,可以通过按动上边的控制按钮控制卧室和厨房的灯,还能控制卧室中的音响的开关。遥控器及时我们的“动作的请求者”,而灯和音响就是我们的“动作的执行者”。当我们按动遥控器上的某个开关后转载 2013-04-06 19:05:24 · 542 阅读 · 0 评论 -
c++设计模式:策略模式(Strategy Pattern)
定义:策略模式定义了算法族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。场景:鸭子种类繁多,有野鸭子、橡皮鸭、诱饵鸭,他们有的会飞,有的不会飞,有的会吱吱叫,有的会呱呱叫,有的还不会叫。其中的飞行行为和呱呱叫行为就可以当做算法族封装起来,这样鸭子的飞行行为或呱呱叫行为就可以相互替换了,如果鸭子翅膀受伤了,我们就可以改变鸭子的飞行行为,让其不转载 2013-04-06 19:13:47 · 713 阅读 · 0 评论 -
c++设计模式:工厂模式(Factory Pattern)
定义:工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个,工厂方法让类把实例化推迟到子类。场景:接简单工厂模式。现在我们纽约的披萨工厂已经转入正轨,我们打算再芝加哥再开一家披萨商店,但是两个地区的人们对于披萨要求的口味各不相同,所以我们需要依据各地的顾客的口味添加不同的原料来制作当地人民喜欢吃的披萨。所以我们用芝加哥商店和纽约商店分别制造属于当地口味的披转载 2013-04-06 19:10:59 · 503 阅读 · 0 评论 -
C# 实现IOC 设计原则和简单封装
C# 实现IOC 设计原则和简单封装IOC设计原则实现规则依赖倒置原则(DIP)依赖注入(DI)IOC容器IOC设计原则控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Loo...原创 2019-08-26 17:57:26 · 2371 阅读 · 5 评论