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

Нажмите для полного просмотра!
Приспособленец. Оптимизация работы с памятью путём предотвращения создания экземпляров элементов, имеющих общую сущность, слайд №1 Приспособленец. Оптимизация работы с памятью путём предотвращения создания экземпляров элементов, имеющих общую сущность, слайд №2 Приспособленец. Оптимизация работы с памятью путём предотвращения создания экземпляров элементов, имеющих общую сущность, слайд №3 Приспособленец. Оптимизация работы с памятью путём предотвращения создания экземпляров элементов, имеющих общую сущность, слайд №4 Приспособленец. Оптимизация работы с памятью путём предотвращения создания экземпляров элементов, имеющих общую сущность, слайд №5 Приспособленец. Оптимизация работы с памятью путём предотвращения создания экземпляров элементов, имеющих общую сущность, слайд №6 Приспособленец. Оптимизация работы с памятью путём предотвращения создания экземпляров элементов, имеющих общую сущность, слайд №7 Приспособленец. Оптимизация работы с памятью путём предотвращения создания экземпляров элементов, имеющих общую сущность, слайд №8 Приспособленец. Оптимизация работы с памятью путём предотвращения создания экземпляров элементов, имеющих общую сущность, слайд №9 Приспособленец. Оптимизация работы с памятью путём предотвращения создания экземпляров элементов, имеющих общую сущность, слайд №10 Приспособленец. Оптимизация работы с памятью путём предотвращения создания экземпляров элементов, имеющих общую сущность, слайд №11 Приспособленец. Оптимизация работы с памятью путём предотвращения создания экземпляров элементов, имеющих общую сущность, слайд №12 Приспособленец. Оптимизация работы с памятью путём предотвращения создания экземпляров элементов, имеющих общую сущность, слайд №13

Вы можете ознакомиться и скачать презентацию на тему Приспособленец. Оптимизация работы с памятью путём предотвращения создания экземпляров элементов, имеющих общую сущность. Доклад-сообщение содержит 13 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

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


Слайд 1


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

Слайд 2


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

Слайд 3


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

Слайд 4


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

Слайд 5


/* * Интерфейс приспособленца */ public interface Primitive { /* * Метод отрисовки примитива с передачей заданного контекста рисования */ public void...
Описание слайда:
/* * Интерфейс приспособленца */ 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...
Описание слайда:
/* * Окружнсоть - разделяемый приспособленец. Внутреннее состояние - радиус */ 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,...
Описание слайда:
/* * Разделяемый приспособленец - Квадрат. * Внутренее состояние - высота, ширина. */ 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) { } } /* * Разделяемый приспособленец - точка */ public class Point implements Primitive { @Override public void draw(Context context) { } }

Слайд 9


/* * Контекст рисования, передается клиентом примитиву для отрисовки последнего */ public final class Context { public final int x; public final int...
Описание слайда:
/* * Контекст рисования, передается клиентом примитиву для отрисовки последнего */ 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...
Описание слайда:
/* * Фабрика приспособленцев. * Реализует разделение оных на основании их внутренних состояний. * */ public abstract class PrimitiveFactory { private static Point onePoint; private static Map circles; private static Map squares; static { circles = new HashMap(); squares = new HashMap(); } /* * Фабрика приспособленцев. * Реализует разделение оных на основании их внутренних состояний. * */ public abstract class PrimitiveFactory { private static Point onePoint; private static Map circles; private static Map squares; static { circles = new HashMap(); squares = new HashMap(); }

Слайд 11


public static synchronized Circle createCircle(int radius) { if (circles.get(radius) == null) { circles.put(radius, new Circle(radius)); } return...
Описание слайда:
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 Point createPoint() { if (onePoint == null) { onePoint = new Point(); } return onePoint; } } 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 (+) Можно получить ощутимую экономию по памяти. (-) Однако, возможно, за это придется заплатить временем на поиск/передачу/вычисление внешнего состояния. (?) Важно понимать, что применимость данного паттерна определяется, в первую очередь тем, на сколько четко идентифицируются внутреннее и внешнее состояния объектов системы.



Похожие презентации
Mypresentation.ru
Загрузить презентацию