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