Clean Architecture & Design Patterns in Practice · Pelajaran

Merancang Entitas Bisnis

Definisikan objek bisnis inti Anda (Entitas) yang membungkus aturan bisnis di seluruh perusahaan dan tetap stabil.

Pelajaran 1 dari 411 langkah

Merancang Entitas Bisnis adalah pelajaran Clean Architecture & Design Patterns in Practice gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Clean Architecture & Design Patterns in Practice, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Clean Architecture & Design Patterns in Practice mencakup 4 pelajaran total.

Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.

What are Business Entities?

In Clean Architecture, Entities are the heart of your application. They represent the core business concepts and rules that are crucial to your enterprise.

Think of them as the fundamental building blocks that define "what your business is" and "how it works," independent of how you store or display data.

Core Business Rules

Entities encapsulate enterprise-wide business rules. These are rules that would exist even if there were no software system, like "a product must have a positive price" or "an order must have a customer."

These rules are stable and apply across your entire organization, not just a specific part of your application.

Independent & Stable

A key principle of Entities is their independence. They should not depend on external layers like databases, web frameworks, or UI components.

This makes them the most stable part of your application, changing only when the core business rules themselves change, not when technology does.

Entity vs. DTO

It's important to distinguish an Entity from a simple Data Transfer Object (DTO). A DTO is just a bag of data, often used to move data between layers.

An Entity, however, contains both data and behavior. It actively enforces its own business rules through its methods.

Entity Structure

Typically, an Entity includes:

  • Attributes: The data that describes the business object (e.g., name, ID, price).
  • Methods: The operations that can be performed on the entity, enforcing its business rules and maintaining its integrity.

These methods ensure the entity always remains in a valid state according to your business logic.

Example: `Product` Entity

Let's consider a simple Product entity. What data and rules would it need?

  • A product needs an id, name, and price.
  • A core business rule might be: "A product's price must always be positive."

The entity itself should enforce this rule.

`Product` Entity Code

Here's how a basic Product entity might look in Java, ensuring the price rule:

public class Product {
  private String id;
  private String name;
  private double price;

  public Product(String id, String name, double price) {
    if (price <= 0) {
      throw new IllegalArgumentException("Price must be positive.");
    }
    this.id = id;
    this.name = name;
    this.price = price;
  }

  public String getId() { return id; }
  public String getName() { return name; }
  public double getPrice() { return price; }

  public static void main(String[] args) {
    try {
      Product laptop = new Product("P001", "Laptop", 1200.00);
      System.out.println(laptop.getName() + " costs $" + laptop.getPrice());
      // This would throw an error:
      // Product invalid = new Product("P002", "Free Item", 0.00);
    } catch (IllegalArgumentException e) {
      System.out.println("Error creating product: " + e.getMessage());
    }
  }
}

Entity Behavior & Rules

Entities aren't just data containers; they have methods that encapsulate behavior and enforce rules. For example, applying a discount might have its own business logic.

The entity's methods ensure its internal state remains consistent and valid according to business rules.

`Product` Discount Example

Let's add a method to our Product entity to apply a discount, with a rule that discounts can't make the price negative.

public class Product {
  private String id;
  private String name;
  private double price;

  public Product(String id, String name, double price) {
    if (price <= 0) {
      throw new IllegalArgumentException("Price must be positive.");
    }
    this.id = id;
    this.name = name;
    this.price = price;
  }

  public String getId() { return id; }
  public String getName() { return name; }
  public double getPrice() { return price; }

  // New method to apply discount
  public void applyDiscount(double percentage) {
    if (percentage < 0 || percentage > 100) {
      throw new IllegalArgumentException("Discount must be between 0-100%.");
    }
    double newPrice = this.price * (1 - percentage / 100);
    if (newPrice < 0) { // Ensure price doesn't go negative
      this.price = 0;
    } else {
      this.price = newPrice;
    }
  }

  public static void main(String[] args) {
    Product book = new Product("B001", "Clean Code Book", 40.00);
    System.out.println("Original: " + book.getName() + " $" + book.getPrice());
    book.applyDiscount(25); // 25% discount
    System.out.println("Discounted: " + book.getName() + " $" + book.getPrice());

    try {
      book.applyDiscount(150); // Invalid discount
    } catch (IllegalArgumentException e) {
      System.out.println("Error applying discount: " + e.getMessage());
    }
  }
}

Entity Properties Check

Based on what we've learned, which of the following are true characteristics of a Clean Architecture Entity?

Recap: Designing Entities

Great job! You've learned about Entities in Clean Architecture. Key takeaways:

  • Entities represent your core business concepts.
  • They encapsulate enterprise-wide business rules.
  • Entities contain both data and behavior, actively enforcing their rules.
  • They are independent and stable, not tied to frameworks or external layers.

Next, we'll explore how Use Cases interact with these robust entities to perform application-specific tasks.

Gratis untuk memulai

Belajar Clean Architecture & Design Patterns in Practice dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
12
Pelajaran
48

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Merancang Entitas Bisnis” gratis?

Ya — teks lengkap “Merancang Entitas Bisnis” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Clean Architecture & Design Patterns in Practice, upgrade ke CoddyKit PRO. Kursus Clean Architecture & Design Patterns in Practice mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Merancang Entitas Bisnis”?

Definisikan objek bisnis inti Anda (Entitas) yang membungkus aturan bisnis di seluruh perusahaan dan tetap stabil. Kamu berlatih Clean Architecture & Design Patterns in Practice dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Clean Architecture & Design Patterns in Practice?

Tidak diperlukan pengalaman sebelumnya. Clean Architecture & Design Patterns in Practice di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Merancang Entitas Bisnis” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Clean Architecture & Design Patterns in Practice ini?

Ya. Setiap pelajaran Clean Architecture & Design Patterns in Practice menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Merancang Entitas Bisnis
  2. Menerapkan Kasus Penggunaan (Interaktor)
  3. Port Masukan dan Keluaran
  4. Menegakkan Aturan Bisnis dengan Invarian
← Kembali ke Clean Architecture & Design Patterns in Practice