
设计模式
嗡嗡作响zzz
想说却还没说的,还很多
展开
-
设计模式——单例模式
单例模式Singleton(单例):无法通过new创建(为了防止在外部对其实例化,将其构造函数设计为私有) 保证类只有一个(在单例类的内部实现只生成一个实例,同时它提供一个静态的getInstance()工厂方法,让客户可以访问它的唯一实例)明白了单例的要求,那么来看下是怎么实现的。一个单例模式的创建(饿汉式)1.创建一个单例类1.1 首先肯定需要一个class类,我们这里随便取名,就叫做Singleton/** * 单例模式 */public class Singlet原创 2021-08-03 16:47:07 · 230 阅读 · 0 评论 -
设计模式之设计原则——迪米特法则
迪米特法则(Law of Demeter, LoD):一个软件实体应当尽可能少地与其他实体发生相互作用。如果一个系统符合迪米特法则,那么当其中某一个模块发生修改时,就会尽量少地影响其他模块,扩展会相对容易,这是对软件实体之间通信的限制,迪米特法则要求限制软件实体之间通信的宽度和深度。迪米特法则可降低系统的耦合度,使类与类之间保持松散的耦合关系。迪米特法则要求我们在设计系统时,应该尽量减少对象之间的交互,如果两个对象之间不必彼此直接通信,那么这两个对象就不应当发生任何直接的相互作用,如果其中的.原创 2021-04-02 09:17:26 · 149 阅读 · 0 评论 -
设计模式之设计原则——接口隔离原则
接口隔离原则(Interface Segregation Principle, ISP):使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口。该原则表面,当接口过大,我们需要对接口按功能或者角色拆分,这里的接口不仅指interface接口,而且也指一种逻辑上的抽象。如按功能拆分接口。接口承担了太多职责,会导致实现类特别臃肿,子类出现大量空方法,灵活性差。...原创 2021-04-02 09:09:40 · 138 阅读 · 0 评论 -
设计模式之设计原则——依赖倒转原则
依赖倒转原则(Dependency Inversion Principle, DIP):抽象不应该依赖于细节,细节应当依赖于抽象。换言之,要针对接口编程,而不是针对实现编程。即我们常说的面向接口编程。依赖倒转原则要求我们在程序代码中传递参数时或在关联关系中,尽量引用层次高的抽象层类,即使用接口和抽象类进行变量类型声明、参数类型声明、方法返回类型声明,以及数据类型的转换等,而不要用具体类来做这些事情。为了确保该原则的应用,一个具体类应当只实现接口或抽象类中声明过的方法,而不要给出多余的方法,否则.原创 2021-04-02 09:03:18 · 267 阅读 · 0 评论 -
设计模式之设计原则——里氏代换原则
里氏代换原则(Liskov Substitution Principle, LSP):所有引用基类(父类)的地方必须能透明地使用其子类的对象。里氏代换原则告诉我们,在软件中将一个基类对象替换成它的子类对象,程序将不会产生任何错误和异常,反过来则不成立。里氏代换原则是实现开闭原则的重要方式之一,由于使用基类对象的地方都可以使用子类对象,因此在程序中尽量使用基类类型来对对象进行定义,而在运行时再确定其子类类型,用子类对象来替换父类对象。使用里氏代换原则注意事项:1.子类的所有方法必...原创 2021-04-01 10:45:11 · 178 阅读 · 0 评论 -
设计模式之设计原则——开闭原则
开闭原则(Open-Closed Principle, OCP):一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。随时间的推移需求会不断发生变化,我们需要在设计之初考虑设计架构是稳定的,可扩展的。开闭原则正是保证该思想的设计原则。为了满足开闭原则,需要对系统进行抽象化设计,抽象化是开闭原则的关键。即用接口或者抽象类等替换掉我们的对象。可以通过对抽象层定义,再通过具体类来进行扩展。如果需要修改系统的行为,无须对抽象层进行任何改动,只需要增加新的具体类来.原创 2021-04-01 09:46:51 · 213 阅读 · 0 评论 -
设计模式之设计原则——单一职责
单一职责:一个类只负责一个功能领域中的相应职责或只有一个引起它变化的原因通俗讲:一个类只干"一件事"看似最简单,实际最易被忽略,我们码代码往往并没有注重单一职责,一个类过于臃肿,功能过多。如:一个类,既有获取连接的方法,又有检验的方法,又有处理业务逻辑的方法,等等。那么怎么处理呢?拆分,拆分成一个获取连接的类,通过这个类获取连接,通过检验类,校验参数,通过处理类,处理逻辑。那么这么做好处是什么呢?遵循了高内聚、低耦合的设计思想1.降低系统的复杂性2.提高代码的可读性,更.原创 2021-03-31 15:59:50 · 123 阅读 · 0 评论 -
设计模式——代理模式
代理模式就是新增加一个代理类,然后通过代理类来调用我们的实现。应用场景可以参考中介。1.未使用代理类场景 未使用代理类,即接口直接通过实现类实现功能接口:public interface UserDao { public void updateUser(); public void delUser();}实现类:public class...原创 2019-08-27 21:37:37 · 82 阅读 · 0 评论 -
设计模式——工厂模式
1.普通简单工厂 工厂类负责对实现同一接口的类进行实例创建,关系图如下代码如下:package com.designer.factory;public class SendFactory { public Sender produce(String type) { if ("mail".equals(ty...原创 2019-09-01 18:15:32 · 102 阅读 · 0 评论