Javaアピアランスモード

記事のディレクトリ

外観モード

概要概要

  • 実際の開発では、外観モードを使用します。これにより、システム全体の構造が外観クラスを介して統合された高レベルのインターフェイスのみになり、ユーザーの使用コストが削減されます。
  • 外観モデルの本質は、2つの文字をカプセル化し、高レベルの構造を通じてユーザーに統一されたAPIエントリを提供することです。これにより、ユーザーは基本的に1つのタイプでシステム全体を操作できるため、ユーザーの使用コストが削減され、システムが提供されます。柔軟性。

キャラクター紹介

  • 外観カテゴリ:サブシステムのメソッドの呼び出しを担当する統合管理サブシステム。
  • サブシステムクラス:サブシステムの機能を実現し、外観クラスによって割り当てられたタスクを処理します。

基本的な実現

サブシステムクラス

public interface Camera {
    
    
    void open();
    void takePicture();
    void close();
}
public interface Phone {
    
    
    void dail();
    void hangup();
}
public class CameraImpl implements Camera {
    
    
    @Override
    public void open() {
    
    
        System.out.println("打开摄像头");
    }

    @Override
    public void takePicture() {
    
    
        System.out.println("拍照");
    }

    @Override
    public void close() {
    
    
        System.out.println("关闭摄像头");
    }
}
public class PhoneImpl implements Phone {
    
    
    @Override
    public void dail() {
    
    
        System.out.println("打电话");
    }

    @Override
    public void hangup() {
    
    
        System.out.println("电话挂断");
    }
}

外観

/**
 * 假设移动电话有2大子系统:拨号系统和摄像头系统
 * 根据不同功能自由组合
 */
public class MobilePhone {
    
    
    private Phone mPhone = new PhoneImpl();
    private Camera mCamera = new CameraImpl();

    public void dail() {
    
    
        mPhone.dail();
    }

    public void videoChat() {
    
    
        mCamera.open();
        mPhone.dail();
    }

    public void hangup() {
    
    
        mPhone.hangup();
    }

    public void takePicture() {
    
    
        mCamera.open();
        mCamera.takePicture();
    }

    public void closeCamera() {
    
    
        mCamera.close();
    }
}

使用する

public class Demo {
    
    
    public static void main(String[] args) {
    
    
        MobilePhone mobilePhone = new MobilePhone();
        mobilePhone.takePicture();
        mobilePhone.videoChat();
    }
}
打开摄像头
拍照
打开摄像头
打电话

おすすめ

転載: blog.csdn.net/qq_14876133/article/details/112367693