
设计模式和数据结构
文章平均质量分 55
设计模式和数据结构
蓝.天
to be or not to be do or die
展开
-
数据结构-排序
性能是最优秀的一种排序算法,首先在待排序的表中任取一个元素作为种子,通过一趟排序将表分为左右两个部分,是的左边的部分都小于种子元素,右边的部分都大于等于种子。排序规则和插入排序是一样的,但是在排序前会将整个待排序的表分割为若干子表,然后先对子表进行插入排序,最后对整体再进行一次插入排序。从后向前两两比较相邻的元素的值,若为逆序就交换他们的值,每趟对比都会将未排序表中最小的元素移动到表的最前头。时间复杂度:构建O(n) + 排序O(nlog2n);时间复杂度:O(nlog2n);算法稳定性: 不稳定。原创 2024-07-07 17:30:31 · 439 阅读 · 0 评论 -
6、设计模式
在软件开发中常常有一个请求会被多个对象中的一个(或多个)处理,但是每个请求在运行时只能有一个接收者,如果显示的执行将会使请求者和接受者产生紧耦合。为了避免产生紧耦合,将这些处理对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它为止。常常有一些组件在内部具有特定的数据结构,如果让客户程序依赖这些特定的数据结构,将极大地破坏组件的复用,这个时候将组件封装在类的内部并对外提供统一的接口是一种行之有效的解决方案。组件模式采用树形结构来实现普遍存在的对象容器,从而将一度多的关系转化为一对一的关系。原创 2024-01-21 21:28:43 · 376 阅读 · 0 评论 -
5、设计模式——接口隔离模式
在组件构建过程中,接口之间的直接依赖会带来很多问题,采用添加一层间接(稳定)接口,来隔离本来相互紧密关联的接口。典型模式。原创 2024-01-18 23:17:35 · 405 阅读 · 0 评论 -
2、设计模式——组件协作
定义:定义一个操作的骨架,而将一些步骤延迟(就是指的晚绑定,一般用虚函数来实现)到子类中,使得子类可以不改变(重用)一个算法的结构即可重新定义一些步骤。在软件构建的过程中,某些对象使用的算法可能多种多样,如果将这些算法都编码到对象中,将会使对象变的异常复杂。而且不使用的算法也可能会变为一个性能负担。在软件构建过程中,我们需要为某些对象建立一种通知依赖关系,就是目标对象状态发生改变时所依赖的对象(观察者)需要得到通知。定义:定义对象间一对多的一种依赖关系,以便一个对象发生改变时所依赖的对象都会得到通知。原创 2024-01-14 23:39:03 · 437 阅读 · 0 评论 -
1.设计模式-综述
设计模式是将代码进行一个抽象,对问题进行一种归纳统一处理,抽象后会增加代码的复用性(二进制层面),抽象后并不会消灭变化,而是隔离变化,降低变化对原有代码框架的影响。从一个更高的层面去讲,人们处理复杂性的问题时用一个更加通用的技术,由于不能全部掌握复杂的对象,我们选择忽略一些非本质的细节,去处理泛化和理想化后的模型。面向对象的构建方式更能适应软件的变化,能将变化带来的影响减到最小。从概念上讲对象就是拥有某种“责任”的抽象。即分而治之,将大问题分解为多个小问题,将复杂的问题分解为多个简单的问题。原创 2024-01-11 23:13:59 · 418 阅读 · 0 评论 -
4、设计模式——对象创建模式
家族工厂模式,当面临一系列相互依赖的对象创建工作时可以使用抽象(家族)工厂模式,它其实算是简单工厂的一个特例。原创 2024-01-17 23:30:58 · 355 阅读 · 0 评论 -
3、设计模式——装饰模式
在软件的组件设计中,如果责任划分不清晰,使得继承得到的结果往往时是随着需求的变化,子类急剧膨胀,同时充斥着重复代码。下面是这种情况比较典型的两种模式。原创 2024-01-15 22:44:55 · 368 阅读 · 0 评论