![](https://img-blog.csdnimg.cn/6be65787e0204fab8d66da6267c01b6e.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
设计模式
主要讲设计模式的原理及实现,后面深入讲解在实际中的使用
[奸笑]这个不是斜眼笑[奸笑]
这个作者很懒,什么都没留下…
展开
-
java中代理的实现并在spring的应用
Java代理机制是一种在运行时创建一个代理对象来代替原始对象的方法。代理对象通常用于在调用原始对象的方法之前或之后执行一些额外的操作,例如日志记录、性能监控等。原创 2023-12-26 14:33:04 · 400 阅读 · 0 评论 -
Java设计模式--依赖倒置原则(Dependncy inversion principle,缩写为:DIP)
Java设计模式–依赖倒置原则说明:高层模块不要依赖低层模块。高层模块和低层模块应该通过抽象相互依赖。除此之外,抽象不要依赖具体的细节,具体实现细节依赖抽象(High-level modules should not depend on low-level models.Both models should depend on abstraction.In addition,abstractions should not depend on details.Details depend on abstra原创 2020-05-18 08:46:56 · 135 阅读 · 1 评论 -
Java设计模式--接口隔离原则(Interface segregation principle,缩写为:ISP)
Java设计模式–接口隔离原则说明:客户端不应该强迫依赖它不需要的接口(Clients should not be forced to depend upon interfaces that they do not use)。接口隔离原则的实践可以参考如下方法:1.对于接口来说,如果某个接口承担了与他无关的接口定义,则说该接口违反了接口隔离原则。可以把无关的接口剥离出去,对胖而杂的接口瘦身。2.对于共通的功能来说,应该细分功能点,按需添加,而不是定义一个大而全的接口,让子类被迫去实现。...原创 2020-05-17 13:38:36 · 167 阅读 · 1 评论 -
Java设计模式--里氏替换原则(Liskvo substitution principle,缩写为:LSP)
Java设计模式–里氏替换原则说明:子类对象能够替换程序中父类对象出现的任何地方,并且保证原来的程序的逻辑行为不变及正确性不被破坏(If S is a subtype of T,then objects of type T may be replaced with a objects of type of S,without breaking the program/Functions that use pointers of references to base classes must be abl原创 2020-05-16 09:36:30 · 318 阅读 · 1 评论 -
Java设计模式--开闭原则(Open-closed principle,缩写为:OCP)
Java设计模式–开闭原则说明:软件实体(模块,类,方法等)因该对扩展开放,对修改关闭(software entities(modules,classes,functions,etc)should be open for extension,but closed for modlification)。通俗的理解就是添加一个功能应该是在已有的代码上进行扩展,而不是修改已有代码开闭原则的目的是为了代码的可扩展,并且避免了对现有代码的修改给软件带了的风险。可扩展的前提是需要了了解到未来的扩展点,那实际软件开原创 2020-05-15 09:05:24 · 187 阅读 · 1 评论 -
Java设计模式--单一职责原则(Single responsibility principle,缩写为:SRP)
Java设计模式–单一职责原则说明:一个类或者一个模块主负责完成一个职责(A class or module should have a single responsibility)。通俗的说就是一个模块,类,方法不要承担过多的任务原则上来说,我们设计一个类的时候不应该设计成大而全的类,要设计粒度小,功能单一的类,如果一个类两个或者两个以上的不相干的功能,那我们就说它违背了单一职责原则,应该将它拆分成多个功能单一,粒度更细的类。实际开发软件的过程中,不必严格遵守原则,可以设计一个粗粒度的类,随着业务原创 2020-05-14 09:36:19 · 201 阅读 · 1 评论 -
Java设计模式--责任链模式
Java设计模式–责任链模式定义为请求创建创建一个接收者对象的链实现public class ChainOfResponsibilityTest { public static void main(String[] args) { // TODO Auto-generated method stub Request request=new Request.RequestBuilder().frequentOk(false).loggedOn(false).build();原创 2020-05-13 10:50:18 · 120 阅读 · 1 评论 -
Java设计模式--观察者模式
Java设计模式–观察者模式定义定义对象间的一对多依赖,让多个观察对象同时监听某一个主题对象,当主题对象发生变化时,他的所有依赖者都会收到通知并更新实现import java.util.ArrayList;import java.util.List;public class ObserverTest { public static void main(String[] args) { // TODO Auto-generated method stub Subject原创 2020-05-12 10:33:47 · 79 阅读 · 1 评论 -
Java设计模式--摸板方法模式
Java设计模式–摸板方法模式定义定义一个操作的算法骨架,而将一些步骤延迟到子类中,Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤一个简单的实现public class TemplateMethodTest { public static void main(String[] args) { // TODO Auto-generated method stub AbstractClass subClass = new SubClass原创 2020-05-11 09:52:46 · 97 阅读 · 0 评论 -
Java设计模式--策略模式
Java设计模式–策略模式定义定义了算法族,分别封装起来,让他们之间可以互相替换,此模式的变化独立于算法的使用者**实现 **虚假的实现第一步,代码的初步实现public class ZombieTest { public static void main(String[] args) { AbstractZombie normalZombie = new NormalZombie(); AbstractZombie flagZombie = new FlagZombie(原创 2020-05-10 11:03:51 · 82 阅读 · 1 评论 -
Java设计模式--装饰器模式
Java设计模式–装饰器模式定义在不改变原有对象的基础上 将功能附加到对象上实现public class DecoratorTest { public static void main(String[] args) { // TODO Auto-generated method stub Component component=new ConreteDecorator2(new ConreteDecorator(new ConcreteComponent())); compo原创 2020-05-09 13:27:04 · 76 阅读 · 1 评论 -
Java设计模式--适配器模式
Java设计模式–适配器模式定义将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作实现1对象适配器模式public class AdapterTest1 { public static void main(String[] args) { Adaptee adaptee = new Adaptee()...原创 2020-05-08 08:51:00 · 129 阅读 · 1 评论 -
Java设计模式--门面模式
Java设计模式–门面模式定义为子系统中的一组接口提供一个一致的接口,Facade模式下定义了一个高层接口,这个接口使得这一子系统更加容易使用实现package 门面模式;public class FacadeTest { public static void main(String[] args) { }}class SubSystem1{ public ...原创 2020-05-07 11:02:54 · 149 阅读 · 1 评论 -
Java设计模式--享元模式
Java设计模式–享元模式定义运用共享技术有效地支持大量细粒度对象实现import java.util.HashMap;import java.util.Map;public class FlyWeightTest { public static void main(String[] args) { // TODO Auto-generated method st...原创 2020-05-06 10:22:02 · 68 阅读 · 1 评论 -
Java设计模式--原型模式
Java设计模式–原型模式定义指原型实例指定创建对象的种类,并且通过拷贝这些原型创建的新对象实现public class PortotypeTest { public static void main(String[] args) throws CloneNotSupportedException { // TODO Auto-generated method stub...原创 2020-05-05 11:25:02 · 94 阅读 · 1 评论 -
Java设计模式--建造者模式
Java设计模式–建造者模式定义将一个复杂对象的创建与他的表示分离,使得同样的构建过程可以创建不同的表示实现1.经典public class BuilderTest { public static void main(String[] args) { // TODO Auto-generated method stub// ProductBuilder builder =...原创 2020-05-04 11:50:25 · 71 阅读 · 1 评论 -
Java设计模式--抽象工厂模式
Java设计模式–抽象工厂模式定义提供一个创建一系列相关或互相依赖对象的接口,而无需指定他们具体的类实现光看定义是不是有一点枯燥,直接上代码吧public class AbstractFactoryTest { public static void main(String[] args) { // TODO Auto-generated method stub// ...原创 2020-05-03 09:31:03 · 91 阅读 · 1 评论 -
Java设计模式--工厂模式
标题Java设计模式–工厂模式工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。简单工厂这个在真正意义上并不算一个设计模式,准确说,是一种编程习惯,将代码分成稳定的部分和抽象的部分,通过封装构造器的方式可以更高效的管理代码,很简单,有助于理解public class FactoryMethod { public static void main(Strin...原创 2020-05-02 09:53:54 · 93 阅读 · 1 评论 -
Java设计模式--单例模式
Java设计模式–单例设计单例模式是设计模式中最简单的形式之一。这一模式的目的是使得类的一个对象成为系统中的唯一实例。要实现这一点,可以从客户端对其进行实例化开始。因此需要用一种只允许生成对象类的唯一实例的机制,“阻止”所有想要生成对象的访问。使用工厂方法来限制实例化过程。这个方法应该是静态方法(类方法),因为让类的实例去生成另一个唯一实例毫无意义。这是一种比较官方的说法,其实道理很简单,就是...原创 2020-05-01 15:13:31 · 203 阅读 · 1 评论