想要写出一套漂亮的代码,设计模式就一定要谨慎选择,今天,小编就带大家了解下常见的设计模式及分类。
工厂模式
interface food {} class A implements food {} class B implements food {} class C implements food {} public class StaticFactory { private StaticFactory() {} public static food getA() { return new A(); } public static food getB() { return new B(); } public static food getC() { return new C(); } } class Client { //客户端代码只需要将相应的参数传入即可得到对象 //用户不需要了解工厂类内部的逻辑。 public void get(String name) { food x = null; if (name.equals("A")) { x = StaticFactory.getA(); } else if (name.equals("B")) { x = StaticFactory.getB(); } else { x = StaticFactory.getC(); } } }
单例模式
class Singleton { private static Singleton instance = new Singleton(); // 在内部产生本类的实例化对象 public static Singleton getInstance() { // 通过静态方法返回instance对象 return instance; } private Singleton() { // 将构造方法封装为私有化 } public void print() { System.out.println("Hello World!!!"); } } public class SingletonDemo { public static void main(String args[]) { Singleton s1 = null; // 声明对象 Singleton s2 = null; // 声明对象 Singleton s3 = null; // 声明对象 s1 = Singleton.getInstance(); // 取得实例化对象 s2 = Singleton.getInstance(); // 取得实例化对象 s3 = Singleton.getInstance(); // 取得实例化对象 s1.print(); // 调用方法 s2.print(); // 调用方法 s3.print(); // 调用方法 } }
适配器模式
适配器模式的作用就是在原来的类上提供新功能。主要可分为3种:
类适配:创建新类,继承源类,并实现新接口,例如
class adapter extends oldClass implements newFunc{}
对象适配:创建新类持源类的实例,并实现新接口,例如
class adapter implements newFunc { private oldClass oldInstance ;}
接口适配:创建新的抽象类实现旧接口方法。例如
abstract class adapter implements oldClassFunc { void newFunc();}
代理模式
interface Network { // 定义Network接口 public void browse(); // 定义浏览的抽象方法 } class Real implements Network { // 真实的上网操作 public void browse() { // 覆写抽象方法 System.out.println("上网浏览信息!"); } } class Proxy implements Network { // 代理上网 private Network network; public Proxy(Network network) { // 设置代理的真实操作 this.network = network; // 设置代理的子类 } public void check() { // 身份验证操作 System.out.println("检查用户是否合法!"); } public void browse() { this.check(); // 调用具体的代理业务操作 this.network.browse(); // 调用真实的上网操作 } } public class ProxyDemo { public static void main(String args[]) { Network net = null; // 定义接口对象 net = new Proxy(new Real()); // 实例化代理,同时传入代理的真实操作 net.browse(); // 调用代理的上网操作 } }
总体来说,java设计模式可以分为以下三种类型:
创建型模式(5种):工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式。
结构型模式(7种):适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组合模式,享元模式。
行为型模式(11种):策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
以上就是本篇文章的所有内容,更多相关java入门知识可以关注本站了解详情。
推荐阅读: