
设计模式
MrLss
天道酬勤
展开
-
程序设计模式(二)原型模式
一、原型模式的定义和特点: 1.用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象 优点:1.简化了创建对象的过程,以便在需要的时候使用 缺点:1.需要给每个类都配置一个clone方法 2.clone方法位于类的内部 当对已有类进行改造的时候,需要修改代码 ,违背了 开闭原则 二、原型模式的结构与实现: 1.抽象原型类:规定了具体原型对象必须实现的接口 2.具体原型类:实现抽象原型类的clone方法,它是可被复制的对象 3.访问类:使用具体原型类中的clone方法 来复原创 2020-10-30 21:36:46 · 305 阅读 · 0 评论 -
程序设计模式(一)单例模式
一、单例模式的定义和特点: 1.指一个类只有一个实例,且该类能自行创建实例的一种模式 2.特点:单例类只有一个实例对象 3.该单例对象必须由单例类自行创建 4.单例类对外提供一个访问该单例的全局访问点 二、单例模式的优点和缺点: 优点:1.单例模式可以保证内存中只有一个实例,减少了内存开销 2.可以避免对资源的多重占用 3.单例模式设置全局访问点。可以优化和共享资源的访问 缺点:1.单例模式一般没有接口,扩展困难 2.在并发测试中,单例模式不利于代码调试 3.单例模式的功能代码一般写在一个类中,如果设原创 2020-10-30 21:25:16 · 405 阅读 · 0 评论 -
C#面向对象设计原则(七)合成复用原则
合成复用原则的定义: 1.又叫组合/聚合复用原则 2.它要求在软件复用时,要尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。 3.合成复用原则同里氏替换原则相辅相成的,两者都是开闭原则的具体实现规范。 合成复用原则的重要性: 1.新旧类之间的耦合度低。这种复用所需的依赖较少,新对象存取成分对象的唯一方法是通过成分对象的接口。 2.它维持了类的封装性。因为成分对象的内部细节是新对象看不见的,所以这种复用又称为“黑箱”复用。 合成复用的实现方法: 1.合成复用原则是通过将已有的对原创 2020-10-27 14:03:27 · 432 阅读 · 0 评论 -
C#面向对象设计原则(六)迪米特法则
迪米特法则的定义: 0.只与你的直接朋友交谈,不跟“陌生人”说话(Talk only to your immediate friends and not to strangers) 1.又称为‘最小知识原则’ 2.如果两个软件实体无须直接通信,那么就不应当发生直接的相互调用,可以通过第三方转发该调用。其目的是降低类之间的耦合度,提高模块的相对独立性。 迪米特法则的优点: 1.低了类之间的耦合度,提高了模块的相对独立性。 2.由于亲合度降低,从而提高了类的可复用率和系统的扩展性。 迪米特法则的实现方式原创 2020-10-27 13:57:59 · 233 阅读 · 0 评论 -
C#面向对象设计原则(五)接口隔离原则
一、接口隔离原则的定义: 1.要求程序员尽量将臃肿庞大的接口拆分成更小的和更具体的接口,让接口中只包含用户感兴趣的方法 2.一个类对另一个类的依赖应该建立在最小的接口上 3.总结:要为各个类建立它们需要的专用接口,而不要试图去建立一个很庞大的接口供所有依赖它的类去调用 二、接口隔离原则和单一职责原则: 1.接口隔离原则和单一职责原则都是为了提高类的内聚性、降低它们之间的耦合性,体现了封装性的思想,但两者是不同的。 2.单一职责原则注重的是职责,而接口隔离原则注重是对接口依赖的隔离 3.单一职责主要是约原创 2020-10-27 13:47:20 · 494 阅读 · 0 评论 -
C#面向对象设计原则(四)单一职责原则
单一职责原则的定义: 1.一个类应该有且仅有一个引起它变化的原因,否则类应该被拆分 2.该原则提出 对象不应该承担太多职责,如果有一个对象承担了太多职责,当客户端需要该对象的一个职责时,不得不将其他不需要的职责包含进来,从而造成冗余代码 单一职责原则的优点: 1.降低类的复杂度,一个类只负责一项职责 2.提高类的可读性,复杂度降低,自然可读性提高 3.提高系统的可维护性 4.变更引起的风险降低 单一职责原则的实现: 1.需要设计人员发现类的不同职责并将其分离,再封装到不同的类或者模块中去 ..原创 2020-10-23 19:50:35 · 294 阅读 · 0 评论 -
C#面向对象设计原则(三)依赖倒置原则
依赖倒置原则的定义: 1.高层模块不应该依赖底层模块,两者都应该依赖其抽象 2.核心思想:要面向接口编程,不要面向实现编程 3.以前面向实现,现在面向抽象 依赖倒置原则的作用: 1.实现开闭原则的重要途径之一,降低了客户与实现模块之间的耦合 2.提高系统的稳定性 3.减少并行开发的风险 4.提高代码的可读性和可维护性 依赖倒置原则的实现方式: 1.每个类尽量提供接口或抽象类 2.变量的声明类型尽量是接口或者是抽象类 3.任何类都不应该从具体类派生 4.使用继承时尽量遵循里氏转换原则 ...原创 2020-10-23 19:42:16 · 265 阅读 · 0 评论 -
C#面向对象设计原则(一)开闭原则
一、开闭原则的定义: 1.软件实体应当对扩展开放、对修改关闭。 2.当应用的需求发生改变时,在不修改软件实体的源代码和二进制代码的前提下,可以扩展模块的功能,使其满足新的需求。 3.软件实体包含:项目中划分的模块,类与接口、方法 二、开闭原则的作用: 1.可以提高代码的复用性 2.可以提高软件的可维护性 三、开闭原则的实现: 1.可以通过“抽象约束、封装变化”来实现开闭原则、即通过接口或者抽象类为软件定义一个相对稳定的抽象层,而将可变因素封装在相同的具体实现类中 2.因为抽象灵活性好,适应性广,只原创 2020-10-22 21:22:03 · 647 阅读 · 2 评论