java设计模式
Posted 指导毕业设计Monkey
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java设计模式相关的知识,希望对你有一定的参考价值。
文章目录
设计模式
设计模式概念:(design pattern)
是对在软件设计普遍存在(反复出现)的各种问题,提出 的一种解决方案。使用设计模式可以使用项目具有:可扩展性,维护性,可靠性(新增一个功能对原来的功能影响不大),可复用性,效率提高等等.
1.七大原则
1.单一职责原则
(每个类或者每个方法只需要实现一个职责,不需要实现很多其他的功能。)在类中的方法足够多需要在类的层面遵守单一职责原则
方法遵循单一职责代码实现:
package com.example;
public class SingleResponsibility
public static void main(String[] args)
Vehicle vehicle = new Vehicle();
vehicle.runAir("飞机");
vehicle.runRolad("车子");
vehicle.runWater("游艇");
class Vehicle
public void runRolad(String vehicle)
System.out.println(vehicle + "在公路上面运行");
public void runWater(String vehicle)
System.out.println(vehicle + "在水中上面运行");
public void runAir(String vehicle)
System.out.println(vehicle + "在天上运行");
2.接口隔离原则
package com.example;
public class Segeration1
public static void main(String[] args)
interface Interface1
void method1();
void method2();
void method3();
void method4();
void method5();
class B implements Interface1
public void method1()
System.out.println("B实现了method1()");
public void method2()
System.out.println("B实现了method2()");
@Override
public void method3()
System.out.println("B实现了method3()");
@Override
public void method4()
System.out.println("B实现了method4()");
@Override
public void method5()
System.out.println("B实现了method5()");
class D implements Interface1
public void method1()
System.out.println("D实现了method1()");
public void method2()
System.out.println("D实现了method2()");
@Override
public void method3()
System.out.println("D实现了method3()");
@Override
public void method4()
System.out.println("D实现了method4()");
@Override
public void method5()
System.out.println("D实现了method5()");
class A //A类通过接口依赖使用B类, 但是只会用到 1,2,3方法
public void depend1(Interface1 i)
i.method1();
public void depend2(Interface1 i)
i.method2();
public void depend3(Interface1 i)
i.method3();
class C //C类通过接口依赖使用D类, 但是只会用到 1,4,5方法
public void depend1(Interface1 i)
i.method1();
public void depend4(Interface1 i)
i.method4();
public void depend5(Interface1 i)
i.method3();
package com.example;
public class Segeration1
public static void main(String[] args)
A a = new A();
a.depend1(new B());
a.depend2(new B());
a.depend3(new B());
C c = new C();
c.depend1(new D());
c.depend4(new D());
c.depend5(new D());
//接口进行隔离之后
interface Interface1
void method1();
interface Interface2
void method2();
void method3();
interface Interface3
void method4();
void method5();
class B implements Interface1,Interface2
public void method1()
System.out.println("B实现了method1()");
public void method2()
System.out.println("B实现了method2()");
@Override
public void method3()
System.out.println("B实现了method3()方法");
class D implements Interface1,Interface3
public void method1()
System.out.println("D实现了method1()");
@Override
public void method4()
System.out.println("D实现了method4()");
@Override
public void method5()
System.out.println("D实现了method5()");
class A //A类通过接口依赖使用B类, 但是只会用到 1,2,3方法
public void depend1(Interface1 i)
i.method1();
public void depend2(Interface2 i)
i.method2();
public void depend3(Interface2 i)
i.method3();
class C //C类通过接口依赖使用D类, 但是只会用到 1,4,5方法
public void depend1(Interface1 i)
i.method1();
public void depend4(Interface3 i)
i.method4();
public void depend5(Interface3 i)
i.method5();
3.依赖倒置原则
4.里氏替换原则
5.开闭原则
6.迪米特法原则
7.合成复用原则
8.经典面试题目?
-
在项目的实际开发中哪里使用了ocp原则? (工厂模式中有用)
-
spring中应用了哪些设计模式,原型模式在哪里 用到?
-
什么是解释器设计模式?画出它的UML类图,分析各个角色是什么?
-
spring框架中哪里使用到了解释器设计模式?并做源码级别分析
-
单例模式一共有几种实现方式?用代码实现,并说明各个的优点缺点。
单列设计模式有几种实现方式?
以上是关于java设计模式的主要内容,如果未能解决你的问题,请参考以下文章