»Ë»Ñ Æ÷·³
IT °³¹ßÀÚ°£ Á¤º¸¸¦ °øÀ¯ÇÏ°í ³íÀÇ°¡ ÀÌ·ç¾îÁö´Â °ø°£ÀÔ´Ï´Ù.

ÀÌ Äڵ忡¼­ ¿¹¿Ü°¡ ¹ß»ýÇϳª¿ä??(ÀÚ¹Ù, µðÀÚÀÎ ÆÐÅÏ °ü·Ã)13

  • SpiritedAway
  • µî·ÏÀÏ 2023-07-14 21:41
  • Á¶È¸¼ö 1062
package framework;

public interface Product extends Cloneable{
public abstract void use(String s);
public abstract Product createCopy();
}

-----------------------------------------------------------

import framework.Product;
public class MessageBox implements Product {
    private char decochar;
    public MessageBox(char decochar) {
        this.decochar = decochar;
    }
    @Override
    public void use(String s) {
        int decolen = 1 + s.length() + 1;
        for (int i = 0; i < decolen; i++) {
            System.out.print(decochar);
        }
        System.out.println();
        System.out.println(decochar + s + decochar);
        for (int i = 0; i < decolen; i++) {
            System.out.print(decochar);
        }
        System.out.println();
    }

    @Override
    public Product createCopy() {
        Product p = null;
        try {
            p = (Product)clone();
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
        }
        return p;
    }
}


ÇÁ·ÎÅäŸÀÔ ÆÐÅÏ °ü·Ã ¿¹Á¦Àä(JAVA ¾ð¾î·Î ¹è¿ì´Â µðÀÚÀÎ ÆÐÅÏ ÀÔ¹®: ½±°Ô ¹è¿ì´Â GoFÀÇ 23°¡Áö µðÀÚÀÎ ÆÐÅÏ)
MessageBox Ŭ·¡½º°¡ cloneable ÀÎÅÍÆäÀ̽º¸¦ È®ÀåÇÑ Product ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ°í ÀÖÁö¸¸
clone ¸Þ¼­µå¸¦ ±¸Çö ¾ÈÇؼ­ createCopy() ¸Þ¼­µå¿¡¼­ ¿¹¿Ü°¡ ¹ß»ýÇÏÁö ¾Ê³ª¿ä??

ÀúÀÚ°¡ ¿¹Á¦¸¦ À߸ø ¾´°ÇÁö
¿¹¿Ü ¹ß»ýÇϸé

import framework.Manager;
import framework.Product;

public class Main {
    public static void main(String[] args) {
        // Áغñ 
        Manager manager = new Manager();
        UnderlinePen upen = new UnderlinePen('-');
        MessageBox mbox = new MessageBox('*');
        MessageBox sbox = new MessageBox('/');

        // µî·Ï 
        manager.register("strong message", upen);
        manager.register("warning box", mbox);
        manager.register("slash box", sbox);

        // »ý¼º°ú »ç¿ë 
        Product p1 = manager.create("strong message");
        p1.use("Hello, world.");

        Product p2 = manager.create("warning box");
        p2.use("Hello, world.");

        Product p3 = manager.create("slash box");
        p3.use("Hello, world.");
    }
}

ÀÌ°Å ½ÇÇ൵ ¾ÈµÇ´Â°Å ¾Æ´Ñ°¡¿ä?? ±Ùµ¥ ¿Ö ½ÇÇà °á°ú¿¡´Â Á¤»ó Ãâ·ÂµÇ´Â°É·Î ÇسùÀ»±î¿ä??


0
ÃßõÇϱ⠴ٸ¥ÀÇ°ß 0
ºÏ¸¶Å©¹öÆ° °øÀ¯¹öÆ°

´Ù¸¥ÀÇ°ß 0 Ãßõ 0 qwerqwerrewq
2023-07-17 Á¡¾ÆÀÌÄÜ
  1. ´ñ±ÛÁÖ¼Òº¹»ç

´Ù¸¥ÀÇ°ß 0 Ãßõ 0 SpiritedAway
2023-07-17 Á¡¾ÆÀÌÄÜ
  1. ´ñ±ÛÁÖ¼Òº¹»ç

´Ù¸¥ÀÇ°ß 0 Ãßõ 0 À¯À²¸¢
2023-07-27 Á¡¾ÆÀÌÄÜ
  1. ´ñ±ÛÁÖ¼Òº¹»ç

´Ù¸¥ÀÇ°ß 0 Ãßõ 0 SpiritedAway
2023-07-27 Á¡¾ÆÀÌÄÜ
  1. ´ñ±ÛÁÖ¼Òº¹»ç

´Ù¸¥ÀÇ°ß 0 Ãßõ 0 SpiritedAway
2023-07-27 Á¡¾ÆÀÌÄÜ
  1. ´ñ±ÛÁÖ¼Òº¹»ç

´Ù¸¥ÀÇ°ß 0 Ãßõ 0 À¯À²¸¢
2023-07-27 Á¡¾ÆÀÌÄÜ
  1. ´ñ±ÛÁÖ¼Òº¹»ç

´Ù¸¥ÀÇ°ß 0 Ãßõ 0 À¯À²¸¢
2023-07-27 Á¡¾ÆÀÌÄÜ
  1. ´ñ±ÛÁÖ¼Òº¹»ç

´Ù¸¥ÀÇ°ß 0 Ãßõ 0 SpiritedAway
2023-07-27 Á¡¾ÆÀÌÄÜ
  1. ´ñ±ÛÁÖ¼Òº¹»ç

´Ù¸¥ÀÇ°ß 0 Ãßõ 0 SpiritedAway
2023-07-27 Á¡¾ÆÀÌÄÜ
  1. ´ñ±ÛÁÖ¼Òº¹»ç

´Ù¸¥ÀÇ°ß 0 Ãßõ 0 SpiritedAway
2023-07-27 Á¡¾ÆÀÌÄÜ
  1. ´ñ±ÛÁÖ¼Òº¹»ç

´Ù¸¥ÀÇ°ß 0 Ãßõ 0 À¯À²¸¢
2023-07-27 Á¡¾ÆÀÌÄÜ
  1. ´ñ±ÛÁÖ¼Òº¹»ç

´Ù¸¥ÀÇ°ß 0 Ãßõ 0 À¯À²¸¢
2023-07-27 Á¡¾ÆÀÌÄÜ
  1. ´ñ±ÛÁÖ¼Òº¹»ç

´Ù¸¥ÀÇ°ß 0 Ãßõ 0 SpiritedAway
2023-07-28 Á¡¾ÆÀÌÄÜ
  1. ´ñ±ÛÁÖ¼Òº¹»ç
  • ¾Ë¸² ¿å¼³, »óó ÁÙ ¼ö ÀÖ´Â ¾ÇÇÃÀº »ï°¡ÁÖ¼¼¿ä.
©¹æ »çÁø  
¡â ÀÌÀü±Û¡ä ´ÙÀ½±Û -¸ñ·Ïº¸±â