Презентация Приспособленец. Оптимизация работы с памятью путём предотвращения создания экземпляров элементов, имеющих общую сущность онлайн

На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Приспособленец. Оптимизация работы с памятью путём предотвращения создания экземпляров элементов, имеющих общую сущность абсолютно бесплатно. Урок-презентация на эту тему содержит всего 13 слайдов. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Устройства и комплектующие » Приспособленец. Оптимизация работы с памятью путём предотвращения создания экземпляров элементов, имеющих общую сущность



Оцените!
Оцените презентацию от 1 до 5 баллов!
  • Тип файла:
    ppt / pptx (powerpoint)
  • Всего слайдов:
    13 слайдов
  • Для класса:
    1,2,3,4,5,6,7,8,9,10,11
  • Размер файла:
    186.32 kB
  • Просмотров:
    38
  • Скачиваний:
    0
  • Автор:
    неизвестен



Слайды и текст к этой презентации:

№1 слайд
Приспособленец англ.
Содержание слайда: Приспособленец  (англ. Flyweight, "легковесный (элемент)") 

№2 слайд
Цель Оптимизация работы с
Содержание слайда: Цель Оптимизация работы с памятью путём предотвращения создания экземпляров элементов, имеющих общую сущность.

№3 слайд
Описание Flyweight
Содержание слайда: Описание Flyweight используется для уменьшения затрат при работе с большим количеством мелких объектов. При проектировании приспособленца необходимо разделить его свойства на внешние и внутренние. Внутренние свойства всегда неизменны, тогда как внешние могут отличаться в зависимости от места и контекста применения и должны быть вынесены за пределы приспособленца.

№4 слайд
Содержание слайда:

№5 слайд
Интерфейс приспособленца
Содержание слайда: /* * Интерфейс приспособленца */ public interface Primitive {   /*    * Метод отрисовки примитива с передачей заданного контекста рисования    */   public void draw(Context context); } /* * Интерфейс приспособленца */ public interface Primitive {   /*    * Метод отрисовки примитива с передачей заданного контекста рисования    */   public void draw(Context context); }

№6 слайд
Окружнсоть - разделяемый
Содержание слайда: /* * Окружнсоть - разделяемый приспособленец. Внутреннее состояние - радиус */ public class Circle implements Primitive {   private int radius;      public Circle(int radius) {     this.radius = radius;   }   @Override   public void draw(Context context) { } } /* * Окружнсоть - разделяемый приспособленец. Внутреннее состояние - радиус */ public class Circle implements Primitive {   private int radius;      public Circle(int radius) {     this.radius = radius;   }   @Override   public void draw(Context context) { } }

№7 слайд
Разделяемый приспособленец -
Содержание слайда: /* * Разделяемый приспособленец - Квадрат. * Внутренее состояние - высота, ширина. */ public class Square implements Primitive {   private int height, width;      public Square(int height, int width) {     this.height = height;     this.width = width;   }   @Override   public void draw(Context context) { } } /* * Разделяемый приспособленец - Квадрат. * Внутренее состояние - высота, ширина. */ public class Square implements Primitive {   private int height, width;      public Square(int height, int width) {     this.height = height;     this.width = width;   }   @Override   public void draw(Context context) { } }

№8 слайд
Разделяемый приспособленец -
Содержание слайда: /* * Разделяемый приспособленец - точка */ public class Point implements Primitive {   @Override   public void draw(Context context) { } } /* * Разделяемый приспособленец - точка */ public class Point implements Primitive {   @Override   public void draw(Context context) { } }

№9 слайд
Контекст рисования,
Содержание слайда: /* * Контекст рисования, передается клиентом примитиву для отрисовки последнего */ public final class Context {   public final int x;   public final int y;   public final Color color;      public Context(int x, int y, Color collor) {     this.x = x;     this.y = y;     this.color = collor;   } } /* * Контекст рисования, передается клиентом примитиву для отрисовки последнего */ public final class Context {   public final int x;   public final int y;   public final Color color;      public Context(int x, int y, Color collor) {     this.x = x;     this.y = y;     this.color = collor;   } }

№10 слайд
Фабрика приспособленцев.
Содержание слайда: /* * Фабрика приспособленцев. * Реализует разделение оных на основании их внутренних состояний. * */ public abstract class PrimitiveFactory {      private static Point onePoint;   private static Map<Integer, Circle> circles;   private static Map<Integer, Square> squares;      static {     circles = new HashMap<Integer, Circle>();                 squares = new HashMap<Integer, Square>();   } /* * Фабрика приспособленцев. * Реализует разделение оных на основании их внутренних состояний. * */ public abstract class PrimitiveFactory {      private static Point onePoint;   private static Map<Integer, Circle> circles;   private static Map<Integer, Square> squares;      static {     circles = new HashMap<Integer, Circle>();                 squares = new HashMap<Integer, Square>();   }

№11 слайд
public static synchronized
Содержание слайда:   public static synchronized Circle createCircle(int radius) {     if (circles.get(radius) == null) {       circles.put(radius, new Circle(radius));     }          return circles.get(radius);   }      public static synchronized Square createSquare(int height, int width) {     if (squares.get(height*10+width) == null) {       squares.put(height*10+width, new Square(height, width));     }          return squares.get(height*10+width);   }   public static synchronized Circle createCircle(int radius) {     if (circles.get(radius) == null) {       circles.put(radius, new Circle(radius));     }          return circles.get(radius);   }      public static synchronized Square createSquare(int height, int width) {     if (squares.get(height*10+width) == null) {       squares.put(height*10+width, new Square(height, width));     }          return squares.get(height*10+width);   }

№12 слайд
public static synchronized
Содержание слайда:   public static synchronized Point createPoint() {     if (onePoint == null) {       onePoint = new Point();     }          return onePoint;   } }   public static synchronized Point createPoint() {     if (onePoint == null) {       onePoint = new Point();     }          return onePoint;   } }

№13 слайд
Summary Можно получить
Содержание слайда: Summary (+) Можно получить ощутимую экономию по памяти. (-) Однако, возможно, за это придется заплатить временем на поиск/передачу/вычисление внешнего состояния. (?) Важно понимать, что применимость данного паттерна определяется, в первую очередь тем, на сколько четко идентифицируются внутреннее и внешнее состояния объектов системы.

Скачать все slide презентации Приспособленец. Оптимизация работы с памятью путём предотвращения создания экземпляров элементов, имеющих общую сущность одним архивом: