Если hash
является вашим байтовым массивом, я бы попробовал что-то вроде этого:
const hash = require('hash.js')
let hash = hash.sha256().update(unescape(encodeURIComponent('abc')))
const buf = Buffer.from(hash)
// readIntLE is for little endian, use readIntBE otherwise
const myInt = buf.readIntLE(0, Buffer.byteLength(hash))
Проверьте doc для readInt
методов
Это зависит от того, насколько гибкий Ваша фабрика должна быть. Если фабрике нужна внешняя информация (как от конфигурационного файла, опций программы, и т.д.), чтобы определить, как создать объекты, чем объект имеет смысл. Если все, в чем Вы будете когда-либо нуждаться, находится в аргументах фабрике, чем функция прекрасна, вероятно.
Единственное преимущество I видит к наличию указателя, для тестирования, где можно использовать другую функцию фабрики.
Наличие интерфейса с отдельным методом или указателем на метод эквивалентно.
Но во втором случае Вы попадете в беду, если Вы захотите, чтобы другой метод согласился там сначала один...
И интерфейс более читаем, чем указатель метода, по-моему.
Затем Вы выбрали.
Я сказал бы, что преимущество наличия функции фабрики как статический метод в самом классе состоит в том, что ясно, что это - часть жизненного цикла того класса. То, чтобы заставлять это отделиться означает других программистов, которые используют Ваш класс, должен был бы посмотреть где-то в другом месте для нахождения метода фабрики.
Я сожалею, что я не уверен в точно, что Вы подразумеваете под раздаванием указателя функции к факторному методу, но я обычно не использовал бы указатель функции, если Вы не имеете к. Указатели функции не могут быть встроены, поскольку они не могут быть разрешены во время компиляции, что означает, что они могли возможно быть медленнее. Но помимо этого, это просто кажется плохим дизайном для использования указателя функции, если можно уже быть уверены, из которых функционируют, Вы собираетесь звонить во время компиляции.
Вы когда-либо хотите больше чем одну фабрику для типа? Если так, Вам нужны объекты фабрики.