dnf公益服发布网

桥梁构建者 安卓 攻略-每个 Android 开发者都必须知道的 5 种设计模式

admin 攻略 2023-11-23 57 0

桥梁构建者 安卓 攻略-每个 Android 开发者都必须知道的 5 种设计模式

在本文中,我将解释什么是设计模式。 作为一名开发者,无论你是新手、老手还是高手,你都应该知道以下几种设计模式。

什么是设计模式:

设计模式是针对软件设计中给定上下文中常见问题的通用、可重用解决方案。

设计模式是针对经常出现的问题的解决方案。

设计模式不是成品; 相反,它们是可以根据上下文应用于许多情况的模板,并且可以随着时间的推移进行改进,从而使它们成为非常强大的软件工程工具。 设计模式帮助开发人员实施经过验证和广泛采用的解决方案。 它有助于提高开发速度,使用设计模式模板更快地开发原型解决方案可以提高编码效率、可维护性和代码可读性。

设计模式的类型:

以下是不同类型的设计模式:

创意设计模式结构设计模式行为设计模式。

1.创意:

这些模式是为创建对象或类的方式而设计的。

2、结构:

这些模式是为类的结构和组合而设计的。

3.行为:

这些模式的设计取决于一个类如何与其他类通信。

开发人员的设计模式:

是一个移动开发者平台,它还提供 API 来开发手表和嵌入式系统的应用程序。 就像您是 开发人员一样,您应该了解常见且简单的设计模式。

方式一 单例模式:

这种创建型设计模式有助于在应用程序上下文中一次且仅一次实例化对象。 单例是一个类,它只允许创建其自身的单个实例并访问该创建的实例。 当您想要创建一个数据库连接对象以从您的应用程序创建一个且唯一的会话时,这很有用。

请记住以下几点:

私有构造函数对其类的静态引用静态方法全局可访问的对象引用跨多个线程的一致性

例子:

public class SingletonInstance {
//A static reference of its class
    private static SingletonInstance instance = null;
//private constructor
    private SingletonInstance() {
    }
//One static method
//Globally accessible object reference
    public static SingletonInstance getInstance() {
        if (instance == null) {
//Consistency across multiple threads
            synchronized (SingletonInstance.class) {
                if (instance == null) {
                    instance = new SingletonInstance();
                }
            }
        }
        return instance;
    }
}

模式 2 工厂:

这也是一种创造性的设计模式。 这确保了子类应该决定如何实例化对象。 我们在不向客户公开创建逻辑的情况下创建对象,并且客户使用相同的公共接口来创建新类型的对象。 您可以拥有任意数量的类桥梁构建者 安卓 攻略,但这些隐藏和对象是使用接口或抽象类创建的。

请记住以下几点:

实施。 创建一个接口。 创建实现相同接口的具体类。 创建工厂以根据输入生成具体类的对象。 使用工厂获取具体类的对象。

例子:

//CarType.java
public enum CarType {
     *** ALL, SEDAN, LUXURY
}
//Car.java
public abstract class Car {
  public Car(CarType model) {
    this.model = model;
    arrangeParts();
  }
  private void arrangeParts() {
    // Do one time processing here
  }
  protected abstract void construct();
  private CarType model = null;
  public CarType getModel() {
    return model;
  }
  public void setModel(CarType model) {
    this.model = model;
  }
}
//LuxuryCar.java
public class LuxuryCar extends Car {
  LuxuryCar() {
    super(CarType.LUXURY);
    construct();
  }
  @Override
  protected void construct() {
    System.out.println("Building luxury car");
  }
}
//SmallCar.java
public class SmallCar extends Car {
  SmallCar() {
    super(CarType. *** ALL);
    construct();
  }
  @Override
  protected void construct() {
    System.out.println("Building  *** all car");
  }
}

模式 3 建造者模式:

模式旨在将复杂对象的构造与其表示解耦,以便相同的构造过程可以创建不同的表示。 用于逐步构造一个复杂的对象,在最后一步返回。 建造者模式是一种旨在为各种对象创建问题提供灵活解决方案的设计模式。

请记住以下几点:

私有构造函数通常称为内部类函数为每个字段设置字段值返回主类构建返回实例的函数

例子:

class Hamburger private constructor(
    val cheese: Boolean,
    val beef: Boolean,
    val onions: Boolean
) {
    class Builder {
        private var cheese: Boolean = true
        private var beef: Boolean = true
        private var onions: Boolean = true
        fun cheese(value: Boolean) = apply { cheese = value }
        fun beef(value: Boolean) = apply { beef = value }
        fun onions(value: Boolean) = apply { onions = value }
        fun build() = Hamburger(cheese, beef, onions)
    }
}

Mode 4适配器模式:

作为 开发人员,您可能已经使用过这种设计模式。 这就像开发人员的日常生活计划。 适配器模式充当两个不兼容接口之间的桥梁。 此模式涉及一个类,负责连接独立或不兼容接口的功能。 通过一个真实的例子,您可以将此模式映射到您的手机充电器适配器。 这是结构设计模式的类型。

interface Bird
{
    public void fly();
    public void makeSound();
}
class Sparrow implements Bird
{
    public void fly()
    {
        System.out.println("Flying");
    }
    public void makeSound()
    {
        System.out.println("Chirp Chirp");
    }
}
interface ToyDuck
{
    // target interface
    // toyducks dont fly they just make
    // squeaking sound
    public void squeak();
}
class PlasticToyDuck implements ToyDuck
{
    public void squeak()
    {
        System.out.println("Squeak");
    }
}
class BirdAdapter implements ToyDuck
{
    // You need to implement the interface your
    // client expects to use.
    Bird bird;
    public BirdAdapter(Bird bird)
    {
        this.bird = bird;
    }
    public void squeak()
    {
        bird.makeSound();
    }
}

模式5外观模式:

外观设计模式是企业开发中非常重要的设计模式。 模式提供了一个更高级别的接口,使一组其他接口更易于使用。

定义了一个新接口并使用了一个旧接口。 处理接口,而不是实现。

例子:

public interface LaptopShop {  
    public void modelNo();  
    public void price();  
}  
public class DellLaptop implements LaptopShop {  
    @Override  
    public void modelNo() {  
        System.out.println(" Dell 6 ");  
    }  
    @Override  
    public void price() {  
    System.out.println(" Rs 65000.00 ");  
    }  
}  
public class Lenovo implements LaptopShop {  
    @Override  
    public void modelNo() {  
    System.out.println(" Lenovo 3 ");  
    }  
    @Override  
    public void price() {  
        System.out.println(" Rs 45000.00 ");  
    }  
}  
public class ShopKeeper {  
    private LaptopShop dell;  
    private LaptopShop lenovo;  
    public ShopKeeper(){  
        dell= new DellLaptop();  
        lenovo=new Lenovo();  
    }  
    public void dellSale(){  
        dell.modelNo();  
        dell.price();  
    }  
        public void lenovoSale(){  
        lenovo.modelNo();  
        lenovo.price();  
    }  
}

综上所述:

在本文中,我尝试解释一个非常基本的列表,其中包含您需要了解的内容。 本文不仅声称这些设计模式很重要,而且这些是您应该熟悉的基础知识。

这只是一个基本列表,还有其他设计和架构模式,如依赖注入、MVVM、MVP 和 MVC,至少你需要知道。

写到这里就结束了,文末放个小福利。 以下是小编在学习过程中整理出的一个学习思路和方向。 互联网开发最重要的是学好技术。 然而,学习技术是一条缓慢而艰巨的道路。 不是一时兴起就能学会的,也不是熬几天几夜就能学会的。 平时要养成努力学习的习惯,更要有准确的学习方向,才能达到有效的学习效果。

由于内容较多桥梁构建者 安卓 攻略,只放一个大概的提纲。 如果您需要更详细的学习思维导图,扫描二维码免费获取。

还有免费进阶UI、性能优化、架构师课程、NDK、混合开发(+Weex)微信小程序,全方位进阶实战技术资料,有技术大咖共同探讨解决问题。

发表评论

用户头像 游客
此处应有掌声~

评论列表

还没有评论,快来说点什么吧~