当前位置: 首页 > 图灵资讯 > 技术篇> Java 中的设计模式及其示例

Java 中的设计模式及其示例

来源:图灵教育
时间:2024-10-22 22:03:37

java 中的设计模式及其示例

java 中的设计模式是什么?

设计模式是软件设计中常见问题的可重用解决方案。它们代表了可应用于软件开发中各种情况的最佳实践,特别是像 java 这样的面向对象编程。

设计模式的类型
  • 创建模式: 处理对象创建机制。
  • 结构模式: 关注类和对象的组成方式。
  • 行为模式: 专注于对象之间的通信。
设计模式的用途
  • 促进代码可重用性。
  • 提高代码可读性和可维护性。
  • 促进开发者之间的沟通。
设计模式示例 1. 单例模式

    public class singleton {
        private static singleton instance;

        private singleton() {}

        public static singleton getinstance() {
            if (instance == null) {
                instance = new singleton();
            }
            return instance;
        }
    }

优点:
  • 对单个实例的受控访问。
  • 通过防止多个实例来节省内存。
缺点:
  • 由于全局状态而难以测试。
  • 可能导致紧密耦合。
2. 观察者模式

    import java.util.arraylist;
    import java.util.list;

    interface observer {
        void update(string message);
    }

    class subject {
        private list observers = new arraylist();

        public void addobserver(observer observer) {
            observers.add(observer);
        }

        public void notifyobservers(string message) {
            for (observer observer : observers) {
                observer.update(message);
            }
        }
    }

优点:
  • 促进主体和观察者之间的松耦合。
  • 可轻松扩展新观察者。
缺点:
  • 如果有很多观察者,性能会很差。
  • 由于间接通信而难以调试。
3. 建造者模式

    class product {
        private string part1;
        private string part2;

        public void setpart1(string part1) { this.part1 = part1; }
        public void setpart2(string part2) { this.part2 = part2; }
    }

    class builder {
        private product product = new product();

        public builder buildpart1(string part1) {
            product.setpart1(part1);
            return this;
        }

        public builder buildpart2(string part2) {
            product.setpart2(part2);
            return this;
        }

        public product build() {
            return product;
        }
    }

优点:
  • 简化复杂对象的创建。
  • 使代码更具可读性和可维护性。
缺点:
  • 通过多个构建器类增加复杂性。
  • 对于简单的物体来说可能有点过分了。
4.工厂模式

    interface Shape {
       void draw();
    }

    class Circle implements Shape {
       public void draw() { System.out.println("Drawing a Circle"); }
    }

    class Rectangle implements Shape {
       public void draw() { System.out.println("Drawing a Rectangle"); }
    }

    class ShapeFactory {
       public Shape getShape(String shapeType) {
          if (shapeType == null) return null;
          if (shapeType.equalsIgnoreCase("CIRCLE")) return new Circle();
          if (shapeType.equalsIgnoreCase("RECTANGLE")) return new Rectangle();
          return null;
       }
    }

优点:
  • 封装对象创建逻辑。
  • 无需修改现有代码即可轻松扩展新形状。
缺点:
  • 添加额外的类,这会增加复杂性。
  • 如果使用不当,可能会导致工厂类激增。
四人帮 (gof)

“四人帮”指的是有影响力的书《设计模式:可重用面向对象软件的元素》的作者。作者——erich gamma、richard helm、ralph johnson 和 john vlissides——介绍了 23 种经典设计模式,这些模式已成为软件工程的基础。

结论

设计模式是 java 编程中必不可少的工具,可帮助开发人员创建健壮且可维护的系统。了解它们的用途、优点和缺点对于有效的软件设计至关重要。四人帮的贡献为有效应用这些模式提供了坚实的基础。

以上就是Java 中的设计模式及其示例的详细内容,更多请关注图灵教育其它相关文章!